最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Node.js net模塊功能及事件監(jiān)聽用法分析

 更新時間:2019年01月05日 10:54:27   作者:章魚仔  
這篇文章主要介紹了Node.js net模塊功能及事件監(jiān)聽用法,結(jié)合實例形式分析了net模塊功能及事件監(jiān)聽相關(guān)操作技巧,需要的朋友可以參考下

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

net模塊

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

var net = require("net");

服務(wù)端編程

引入模塊的前提下:

1. 創(chuàng)建一個新的TCP或IPC服務(wù)

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

2. 創(chuàng)建connections 啟動一個 server 監(jiān)聽.

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

客戶端編程

引入net模塊。

1. 創(chuàng)建一個連接即可

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

效果

事件監(jiān)聽

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

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

Demo演示

下面有一個詳細(xì)的demo可自行嘗試

tcpserver.js

//tcpserver.js
var net = require('net');
var server = net.createServer(function(client_socket) {
  console.log("client coming");
  client_socket.setEncoding("utf8");
  //接收到客戶端發(fā)送的錯誤就會調(diào)用
  client_socket.on("error",function(err){
    console.log("error");
  });
  //有接收到客戶端的數(shù)據(jù)調(diào)用的函數(shù)
  //data 默認(rèn)是Hex(二進(jìn)制編碼)格式,如果強制設(shè)置為utf8那么底層會先轉(zhuǎn)換為utf8字符串傳過去
  client_socket.on("data",function(data){
    console.log(data);
  });
  //用戶斷線離開
  client_socket.on("close",function(client_socket){
  console.log("close socket");
  });
});
//編寫代碼指示server監(jiān)聽到某個端口上
//配置好之后就會監(jiān)聽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的監(jiān)聽事件
server.on("error",function (error) {
  console.log("error is on server",error);
});
//服務(wù)器關(guān)閉事件
server.on("close",function(client_socket){
  console.log("close server");
});

tcpclient.js

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

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

相關(guān)文章

  • node.js中的fs.appendFileSync方法使用說明

    node.js中的fs.appendFileSync方法使用說明

    這篇文章主要介紹了node.js中的fs.appendFileSync方法使用說明,本文介紹了fs.appendFileSync方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • Yapi安裝部署詳細(xì)圖文教程

    Yapi安裝部署詳細(xì)圖文教程

    YApi 是一個可本地部署的、打通前后端及QA的、可視化的接口管理平臺,下面這篇文章主要給大家介紹了關(guān)于Yapi安裝部署的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • node.js報錯:npm?ERR?code?EPERM的解決過程

    node.js報錯:npm?ERR?code?EPERM的解決過程

    在學(xué)習(xí)vue+typescript的時候突然發(fā)現(xiàn)了個錯誤,所以下面這篇文章主要給大家介紹了關(guān)于node.js報錯:npm?ERR?code?EPERM的詳細(xì)解決過程,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • Node.js?網(wǎng)絡(luò)框架koa?compose中間件使用解析

    Node.js?網(wǎng)絡(luò)框架koa?compose中間件使用解析

    這篇文章主要為大家介紹了Node.js?網(wǎng)絡(luò)框架koa?compose中間件使用解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • 解決koa2 ctx.render is not a function報錯問題

    解決koa2 ctx.render is not a function報錯問題

    這篇文章主要介紹了解決koa2 ctx.render is not a function報錯問題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • node 標(biāo)準(zhǔn)輸入流和輸出流代碼實例

    node 標(biāo)準(zhǔn)輸入流和輸出流代碼實例

    這篇文章主要介紹了node 標(biāo)準(zhǔn)輸入流和輸出流代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • 淺談node.js 命令行工具(cli)

    淺談node.js 命令行工具(cli)

    nodejs開發(fā)命令行工具,流程相對簡單,但一套完整的命令行程序開發(fā)流程下來,還是需要下點功夫,這篇文章主要介紹了淺談node.js 命令行工具(cli),感興趣的小伙伴們可以參考一下
    2018-05-05
  • autojs的Node.js正確退出腳本示例

    autojs的Node.js正確退出腳本示例

    這篇文章主要為大家介紹了autojs的Node.js正確退出腳本示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • nodejs腳本中如何執(zhí)行shell命令

    nodejs腳本中如何執(zhí)行shell命令

    Node.js中使用child_process模塊的exec和spawn方法來執(zhí)行shell命令,exec適合執(zhí)行小命令,返回輸出;spawn適合大命令或長時間運行的命令,實時輸出
    2025-02-02
  • 三種Node.js寫文件的方式

    三種Node.js寫文件的方式

    這篇文章主要為大家詳細(xì)介紹了三種Node.js寫文件的方式,感興趣的小伙伴們可以參考一下
    2016-03-03

最新評論

建阳市| 陕西省| 察雅县| 尼玛县| 射阳县| 新和县| 梁河县| 墨竹工卡县| 筠连县| 连州市| 香港| 富川| 石台县| 普陀区| 梨树县| 合江县| 车险| 浦东新区| 云南省| 满洲里市| 宜良县| 镇沅| 改则县| 靖边县| 望谟县| 航空| 青冈县| 安新县| 徐州市| 永吉县| 阳江市| 庐江县| 象山县| 和田县| 商南县| 明溪县| 青河县| 原阳县| 天水市| 东乡族自治县| 青铜峡市|