netcat不发送最终的FIN来closures连接
我正在玩自制的nodejs tcp服务器,并在Linux下testingnetcat的行为。 在build立连接时,服务器发送“Test”string并closures套接字。 我期望netcat通过发送适当的tcp数据包来closures它的连接,但是它不会! 这是我做的:
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
它的行为如预期,并收到“testing”string后终止连接。
问题是为什么netcat的行为不同?
netcat
被devise工作,直到双方closures连接。 你仍然有一面开放。
当服务器closures与FIN的连接时,连接保持半开状态,您可以发送数据,服务器可以接收数据。 连接将保持在这种状态,直到您closuresnetcat的标准input(键入Ctrl-D),这使得它发送一个FIN数据包到服务器。
- 在通过file.createWriteStream()传输到GCP时,获取ESOCKETTIMEOUT,ECONNRESET或套接字会挂载大文件。
- 使用TCP进行跨进程的内存共享
- socket.io客户端和服务器socket.id不同
- Cloud 9 IDE上的Socket.io – 警告:错误提出:错误:听EACCES
- Nodejs套接字连接错误
- Node.js – Socket.io – “最大并发连接数”问题
- 是否socket.io服务器发出callback阻塞?
- Typescriptasynchronous生成器,用于套接字
- 如何将videoblob发送到node.js服务器通过将其转换为二进制数据包?