node net 模块

213 阅读1分钟

写返回值在哪里?

server端

const net = require('net');
const { StringDecoder } = require('string_decoder');
let decoder = new StringDecoder('utf8');

net.createServer(socket => {
    socket.on('data', data => {
        console.log('收到来自客户端的消息:',decoder.write(data));
    })
    socket.on('end',function(){
       console.log('socket从客户端被关闭了');
    });
})
server.listen(12315);

client 端

const net = require('net');

let socket = new net.Socket();
socket.connect(12315);
//连接服务器
socket.on('connect',c=>{
    console.log('成功建立和12315的连接')
    setTimeout(()=>{
        console.log('建立连接1s后发送消息');
        socket.write('SN:1231512315','utf8',function(){
            console.log('消息已发送');
        });
    },1000);
});

socket.on('data',function(resp){
    console.log('收到服务器返回消息:',resp);
});

socket.on('end',function(){
    console.log('socket从客户端被关闭了');
})

第二种 server 端

const net = require('net');
const server = net.createServer(socket => {
    socket.on('data', data => {
        // 这是在写返回数据吗?
        socket.write(buf);
    })
})
server.listen(654321);

client 端

const conn = net.createConnection(654321);
const buf = 'test';
conn.write(buf);
conn.addListener("data", data => {
    console.log(data);
})

中文网解读

既然有 soket.connect 为什么还有 net.connect 和 net.createConnection()?