Scoket编程
创建服务器
- 创建sever.js
- 引用net工具包
- 使用net.createSever()创建一个TCP服务器,并使用net.listen()监听指定端口
var net = require('net');// 创建一个TCP服务器,function(connection){}是给connection事件创建的监听器,当有接收到请求的时候触发var server = net.createServer(function (connection) { console.log('client connected'); // 当 socket 另一端发送 FIN 包时,触发该事件。 connection.on('end', function () { console.log('客户端关闭链接'); }); // 写入数据,默认是uft8编码 connection.write('Hello World!\r\n'); // pipe()是管道流方法,把connection加到connection中 connection.pipe(connection);});// 监听8080端口,客户端端口需要与其一致server.listen('8080', function () { console.log('server is listening');});
创建客户端
- 新建 client.js
- 引入net工具包
- 使用net.connect()创建一个新的net.Socket对象并连接到指定端口(跟服务器端口一致)
- 对data、end事件进行监听
var net = require('net');// 返回一个新的net.Socket,并链接到指定的端口,这里是8080,端口需要与服务器保持一致// 当socket建立的时候,将会触发‘connect’事件var client = net.connect( {port: 8080}, function () { console.log('链接到服务器'); });// data为net.Socket对象的事件,当接收到数据时触发client.on('data', function (data) { console.log(data.toString()); // 半关闭 socket。例如,它发送一个 FIN 包。可能服务器仍在发送数据。 client.end();});// 当 socket 另一端发送 FIN 包时,触发该事件。client.on('end', function () { console.log('断开与服务器的链接');});
运行: 打开两个窗口,先在其中一个端口启动服务器 node server.js
在另一个窗口运行客户端 node client.js
问题
怎么实现在这两个窗口进行聊天呢?