写了一个小例子。TCP服务器是在vc里实现的,循环等待客户端的数据连接,接收到客户端传来的特定值(STOP_CTRL: 4848)时断开连接。客户端里TCP连接的启停由我手动控制。
function ctrl_start() {
socket.connect(TCP_PORT, TCP_HOST, function() {
console.log("connected to: " + TCP_HOST + ":" + TCP_PORT);
});
}
function ctrl_stop() {
buf.writeUInt32LE(STOP_CTRL, 0);
socket.end(buf);
socket.destroy();
console.log("destroy "+STOP_CTRL);
}
经测试,连接的启停都进行的很好。可是命令行中打印结果如下:
connected to: 192.168.1.126:6969
destroy 4848
TCP Connection closed
connected to: 192.168.1.126:6969
connected to: 192.168.1.126:6969
destroy 4848
TCP Connection closed
即每次启动时,都会增加一条socket连接信息。可是我在停止连接的时候调用了socket.destroy()的啊?这是为什么?