日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內(nèi)最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當前位置:首頁 > php開源 > php教程 > Node核心模塊之Net

Node核心模塊之Net

來源:程序員人生   發(fā)布時間:2017-02-08 08:17:38 閱讀次數(shù):3002次

Node核心模塊之Net

Node.js v6.9.4

Net模塊提供1個異步網(wǎng)絡包裝器,它能夠創(chuàng)建被稱為流的TCP服務器和客戶端。

1個實例

* 創(chuàng)建TCP服務器 *

const net = require('net');


let server = net.createServer((socket) => {
    socket.on('data', (data) => {
        console.log(data);
    });

    socket.write('這是1條TCP服務器發(fā)送的數(shù)據(jù)');

    socket.end(() => {
        console.log('鏈接斷開');
    });


});

// grab a random port.
server.listen(3306, () => {

  // "opened server on { address: '::', family: 'IPv6', port: 3306 }"
  console.log('opened server on', server.address());    
});

* 創(chuàng)建TCP客戶端 *

const net = require('net');

const client = net.createConnection({port: 3306}, () => {
  //'connect' listener
  console.log('connected to server!');
  client.write('world!\r\n');
});

client.on('data', (data) => {
  console.log(data.toString());
  client.end();
});

client.on('end', () => {
  console.log('disconnected from server');
});

* 先運行上面的服務器程序,然后運行客戶端程序,履行流程以下 *

1.服務器啟動,打印’opened server on { address: ‘::’, family: ‘IPv6’, port: 3306 }’
2.客戶端連接成功,打印’connected to server!’
3.客戶端發(fā)送數(shù)據(jù)’world!\r\n’,
4.服務器接受數(shù)據(jù)’connected to server!’,服務器發(fā)送數(shù)據(jù)’這是1條TCP服務器發(fā)送的數(shù)據(jù)’
5.客戶端打印接受數(shù)據(jù)
6.客戶端斷開

服務端事件

* 由于net.Server是1個EventEmitter實例,因此TCP服務器會有自定義注冊事件,自定義事件有以下4種: *

1.listening: 在調(diào)用server.listen()方法后觸發(fā)
2.connection: 當有新客戶連接時觸發(fā)
3.close: 當服務器關閉時觸發(fā),調(diào)用server.close()后,服務器停止接受新的套接字連接,等待當前所有連接都斷開后,觸發(fā)該事件
4.error: 當服務器產(chǎn)生異常時,觸發(fā)該事件,’close’事件將會在此事件后直接調(diào)用

連接事件

* 服務器可以同時與多個客戶端保持連連接,對每一個連接而言是典型的可寫可對Stream對象,稱為socket(socket是net.Socket的1個實例,net.Socket實例是EventEmitter),Stream對象可以用于服務器和客戶端之間的通訊,是1個雙工Stream接口,可以通過data事件讀取另外一端發(fā)送來的數(shù)據(jù),可以通過write()方法向另外一端發(fā)送數(shù)據(jù),連接事件有以下幾種自定義事件*

1.data: 1端調(diào)用write()發(fā)送數(shù)據(jù)時,另外一端觸發(fā)data()事件,參數(shù)數(shù)據(jù)是Buffer或String, 數(shù)據(jù)的編碼由socket.setEncoding()設置。
2.close: 當套接字關閉后觸發(fā)該事件
3.connect: 套接字建立成功后觸發(fā)
4.error: 當異常產(chǎn)生時觸發(fā)該事件
5.end: 當套接字的另外一端發(fā)送FIN數(shù)據(jù)包時觸發(fā)
6.drain: 當寫緩沖區(qū)為空時觸發(fā)改事件
7.timeout: 當套接字連接1段時間后觸發(fā)該事件,其實不關閉套接字,只是通知套接字

net模塊方法

* const net = require(‘net’) *
* net.Socket是本地套接字或TCP的1個抽象,實現(xiàn)雙工Stream接口,可以由用戶創(chuàng)建并作用于客戶端,或由node創(chuàng)建,并通過服務器的’連接’事件傳遞給用戶 *

net模塊方法

  • net.connect(options[, connectListener]):返回1個net.Socket,依照options自動連接服務器
  • net.connect(path[, connectListener]):返回1個新的unix net.Socket并自動連接到提供的路徑
  • net.connect(port[, host][, connectListener])
  • net.createConnection(options[, connectListener]):返回1個net.Socket,依照options自動連接服務器
  • net.createConnection(path[, connectListener])
  • net.createConnection(port[, host][, connectListener])
  • net.createServer([options][, connectionListener]):創(chuàng)建1個新的TCP服務器
  • net.isIP(input):判斷輸入IP,無效IP(返回0),IPv4(返回4),IPv6(返回6)
  • net.isIPv4(input):如果輸入是IPv4,返回true
  • net.isIPv6(input):如果輸入是IPv6,返回true
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: av九九| 九九热精品视频在线播放 | 久久久精品国产 | 亚洲色图在线观看 | 日本三级视频 | 一区久久 | 国产精品久久久久久久久免费看 | avtt在线| 美玉足脚交一区二区三区图片 | ree性亚洲88av | 毛片免费观看 | 国产三级三级三级精品8ⅰ区 | 午夜精品一区二区三区在线播放 | 欧美一区二区在线播放 | 精品国产精品三级精品av网址 | 日韩欧美国产高清 | 欧美精品一区二区在线观看 | 久久久久久久久国产精品 | 国产伊人精品 | 91av视频在线免费观看 | 成人毛片视频在线观看 | 欧美黑人 | 日韩一区二区视频 | 国产精品成人3p一区二区三区 | 国产精品高清一区二区 | 国产一区二区三区视频观看 | 人成福利视频在线观看 | xxx69在线观看 | 久久国产综合精品 | 欧美xx网站| 日韩精品免费在线观看 | 亚洲一区免费观看 | 国产黄色精品 | 国产精品大片 | 国产二三区| 亚洲精品视频一区二区三区 | 97午夜| 日韩在线视频网站 | 99精品视频在线观看 | 国产1区 | 欧美黑人双插 |