Pomelo 使用之 Node.js TCP 编程基础

在使用 Pomelo 之前,还是要了解一些 Node.js 的基础知识。我之前在使用 python 的 twisted 做服务器时,用它还做了个客户端方便自己的测试。所以也想在 Node.js 上同时实现服务器和客户端便于以后对协议的测试。

一篇博客讲得很清楚了,可能由于版本的原因,有些句子在 0.8.18 上执行并不正确,所以做了修改。 Node.js net 组件的其他内容可以参考其文档

1 用 Node.js 创建 TCP 服务器

var net = require('net');

var HOST = '127.0.0.1';
var PORT = 6969;

var server = net.createServer();
server.listen(PORT, HOST, function(){
    console.log('Server listening on ', server.address());    
});

server.on('connection', function(sock) {

    console.log('CONNECTED: ' +
         sock.remoteAddress + ':' + sock.remotePort);

    // 为这个 socket 实例添加一个"data"事件处理函数
    sock.on('data', function(data) {
        console.log('DATA ' + sock.remoteAddress + ': ' + data);
        // 向客户端发送消息
        sock.write('You said "' + data + '"');
    });

    // 为这个 socket 实例添加一个"close"事件处理函数
    sock.on('close', function(data) {
        console.log('CLOSED: ' +
            sock.remoteAddress + ' ' + sock.remotePort);
    });

});

2 用 Node.js 创建 TCP 客户端

var net = require('net');

var HOST = '127.0.0.1';
var PORT = 6969;

var client = new net.Socket();
client.connect(PORT, HOST, function() {

    console.log('CONNECTED TO: ' + HOST + ':' + PORT);
    // 向服务器发送数据
    client.write('I am XX!');

});

// 接收服务器数据
client.on('data', function(data) {
    console.log('DATA: ' + data);
    // 关闭连接
    client.destroy();
});

// 为客户端添加“close”事件处理函数
client.on('close', function() {
    console.log('Connection closed');
});


发表评论?

0 条评论。

发表评论