【发布时间】:2015-03-12 22:07:45
【问题描述】:
我正在使用自制的nodejs tcp服务器并在Linux下使用netcat测试它的行为。建立连接后,服务器将“测试”字符串向下发送并关闭套接字。我希望 netcat 通过发送适当的 tcp 数据包来关闭它的连接,但它没有! 这是我的工作:
nc -v localhost 9000
之后整个对话是这样的:
netcat --> server (SYN)
netcat <-- server (SYN, ACK)
netcat --> server (ACK)
netcat <-- server (PSH, ACK)
netcat --> server (ACK)
netcat <-- server (FIN, ACK)
netcat --> server (ACK)
在这一点上,我希望 netcat 发送 FIN,但它永远不会发送。连接挂在一侧的 FIN-WAIT-2 和另一侧的 CLOSE-WAIT。
如果我用 telnet 尝试同样的事情:
telnet localhost 9000
它的行为与预期一样,并在收到“测试”字符串后终止连接。
问题是为什么 netcat 的行为会有所不同?
【问题讨论】:
标签: node.js sockets tcp netcat