nodejs-底层网络-v1.0.0

简单示例

//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

你可能感兴趣的:(nodejs-底层网络-v1.0.0)