简单示例
//steps-01:建服务器
//tcp-server.js
var net = require('net');
var PORT = 3000;
var HOST = '127.0.0.1';
var server = net.createServer(function(socket){
console.log('服务端:收到来自客户端的请求');
socket.on('data', function(data){
console.log('服务端:收到客户端数据,内容为{'+ data +'}');
// 给客户端返回数据
socket.write('你好,我是服务端');
});
socket.on('close', function(){
console.log('服务端:客户端连接断开');
});
});
server.listen(PORT, HOST, function(){
console.log('服务端:开始监听来自客户端的请求');
});
//steps-02:启服务器
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('客户端:已经与服务端建立连接');
});
client.on('data', function(data){
console.log('客户端:收到服务端数据,内容为{'+ data +'}');
});
client.on('close', function(data){
console.log('客户端:连接断开');
});
client.end('你好,我是客户端');
//steps-04:启客户端
node tcp-client.js
属性归类
连接相关
socket.connect():有3种不同的参数,用于不同的场景;
socket.setTimeout():用来进行连接超时设置。
socket.setKeepAlive():用来设置长连接。
socket.destroy()
socket.destroyed
读写相关
socket.write()
socket.end()
socket.pause()
socket.resume()
socket.setEncoding()
socket.setNoDelay()
属性相关
socket.bufferSize
socket.bytesRead
socket.bytesWritten
事件循环
socket.ref()
socket.unref()
地址相关
socket.address()
socket.remoteAddress
socket.remoteFamily
socket.remotePort
socket.localAddress
socket.localPort
事件简介
data:收到数据。
connect:连接建立。
close:连接断开。
end:连接结束。
error:连接出错
timeout:连接超时。
drain:
lookup:域名解析。
相关文档
https://nodejs.org/api/net.html#net_socket_destroy_exception