簡(jiǎn)單示例
//steps-01:建服務(wù)器
//tcp-server.js
var net = require('net');
var PORT = 3000;
var HOST = '127.0.0.1';
var server = net.createServer(function(socket){
console.log('服務(wù)端:收到來(lái)自客戶端的請(qǐng)求');
socket.on('data', function(data){
console.log('服務(wù)端:收到客戶端數(shù)據(jù),內(nèi)容為{'+ data +'}');
// 給客戶端返回?cái)?shù)據(jù)
socket.write('你好,我是服務(wù)端');
});
socket.on('close', function(){
console.log('服務(wù)端:客戶端連接斷開(kāi)');
});
});
server.listen(PORT, HOST, function(){
console.log('服務(wù)端:開(kāi)始監(jiān)聽(tīng)來(lái)自客戶端的請(qǐng)求');
});
//steps-02:啟服務(wù)器
node tcp-server.js
//steps-03:建客戶端
//tcp-client.js
var net = require('net');
var PORT = 3000;
var HOST = '127.0.0.1';
var client = net.createConnection(PORT, HOST);
client.on('connect', function(){
console.log('客戶端:已經(jīng)與服務(wù)端建立連接');
});
client.on('data', function(data){
console.log('客戶端:收到服務(wù)端數(shù)據(jù),內(nèi)容為{'+ data +'}');
});
client.on('close', function(data){
console.log('客戶端:連接斷開(kāi)');
});
client.end('你好,我是客戶端');
//steps-04:啟客戶端
node tcp-client.js
屬性歸類(lèi)
連接相關(guān)
socket.connect():有3種不同的參數(shù),用于不同的場(chǎng)景;
socket.setTimeout():用來(lái)進(jìn)行連接超時(shí)設(shè)置。
socket.setKeepAlive():用來(lái)設(shè)置長(zhǎng)連接。
socket.destroy()
socket.destroyed
讀寫(xiě)相關(guān)
socket.write()
socket.end()
socket.pause()
socket.resume()
socket.setEncoding()
socket.setNoDelay()
屬性相關(guān)
socket.bufferSize
socket.bytesRead
socket.bytesWritten
事件循環(huán)
socket.ref()
socket.unref()
地址相關(guān)
socket.address()
socket.remoteAddress
socket.remoteFamily
socket.remotePort
socket.localAddress
socket.localPort
事件簡(jiǎn)介
data:收到數(shù)據(jù)。
connect:連接建立。
close:連接斷開(kāi)。
end:連接結(jié)束。
error:連接出錯(cuò)
timeout:連接超時(shí)。
drain:
lookup:域名解析。
相關(guān)文檔
https://nodejs.org/api/net.html#net_socket_destroy_exception