国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

Node.js net模塊功能及事件監聽用法分析

2019-11-19 12:19:22
字體:
來源:轉載
供稿:網友

本文實例講述了Node.js net模塊功能及事件監聽用法。分享給大家供大家參考,具體如下:

net模塊

對比C語言的網絡編程,Node.js有更加簡便的開發模式與模塊提供。它就是net模塊
在需要使用的時候只需要require("net")就可以引入模塊了。

var net = require("net");

服務端編程

引入模塊的前提下:

1. 創建一個新的TCP或IPC服務

var server = net.createServer(function(client_socket) {  console.log("client coming");});

2. 創建connections 啟動一個 server 監聽.

server.listen({  host:'127.0.0.1',  port:6080,  exclusive:true,});

客戶端編程

引入net模塊。

1. 創建一個連接即可

//端口要與需要連接的服務器端口一致var socket = net.connect({  port:6080,  host:'127.0.0.1',},function(){  console.log("connected to server!");});

效果

事件監聽

常用監聽事件事件類型 事件觸發條件
connection 連接成功調用的事件
error 發生錯誤調用的事件
close 當server關閉的時候觸發. 注意,如果有連接存在, 直到所有的連接結束才會觸發這個事件
data 當接收到數據的時觸發該事件。data 參數是一個 Buffer 或 String。數據編碼由 socket.setEncoding() 設置。注意當 Socket 發送 data 事件的時候,如果沒有監聽者數據將會丟失。
listening 當服務被綁定后調用 server.listen().
end 當 socket 的另一端發送一個 FIN 包的時候觸發,從而結束 socket 的可讀端。

監聽事件的API都是使用on()方法。

Demo演示

下面有一個詳細的demo可自行嘗試

tcpserver.js

//tcpserver.jsvar net = require('net');var server = net.createServer(function(client_socket) {  console.log("client coming");  client_socket.setEncoding("utf8");  //接收到客戶端發送的錯誤就會調用  client_socket.on("error",function(err){    console.log("error");  });  //有接收到客戶端的數據調用的函數  //data 默認是Hex(二進制編碼)格式,如果強制設置為utf8那么底層會先轉換為utf8字符串傳過去  client_socket.on("data",function(data){    console.log(data);  });  //用戶斷線離開  client_socket.on("close",function(client_socket){  console.log("close socket");  });});//編寫代碼指示server監聽到某個端口上//配置好之后就會監聽server 等待客戶端接入//host==> 地址 port ==>端口 exclusive ==> 獨占模式server.listen({  host:'127.0.0.1',  port:6080,  exclusive:true,});server.on("connection",function(client_socket){  console.log("connection");});//server.unref();//停止node對server的監聽事件server.on("error",function (error) {  console.log("error is on server",error);});//服務器關閉事件server.on("close",function(client_socket){  console.log("close server");});

tcpclient.js

//tcpclient.jsvar net = require("net");//net.socket類var socket = net.connect({  port:6080,  host:'127.0.0.1',},function(){  console.log("connected to server!");});//連接成功調用的事件socket.on("connect",function(){  console.log("connect success");  //已utf-8的方式編碼成二進制的數據傳輸  socket.write("Hello World!","utf8");});//發生錯誤調用的事件socket.on("error",function (err) {  console.log("error is ",err);});//socket 關閉事件socket.on("close",function(){  console.log("close");});//對方發送關閉數據包的事件socket.on("end",function(){  console.log("end event");})//當有數據發送過來的時候調用socket.on("data",function(data){  console.log(data);});

希望本文所述對大家nodejs程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大兴区| 西乡县| 太和县| 景德镇市| 梧州市| 镇坪县| 那坡县| 木里| 茶陵县| 金湖县| 武城县| 麦盖提县| 阿鲁科尔沁旗| 盖州市| 朝阳区| 岳池县| 体育| 都兰县| 客服| 华阴市| 新龙县| 鹤山市| 延安市| 高邮市| 新田县| 连南| 铜鼓县| 宁蒗| 新疆| 瑞安市| 清原| 阿拉善右旗| 宁都县| 饶平县| 九龙坡区| 宝应县| 德保县| 比如县| 铁力市| 文昌市| 建始县|