小编Pat*_*ter的帖子

Java套接字:Socket.close()在Windows和Mac上终止不同的连接?

情况如下:我有一个Java应用程序,它通过TCP与具有TCP堆栈的微控制器通信.控制器上的堆栈工作正常,我可以解决这个问题.

问题是:当我终止与Controller的连接时,我只是使用socket.close()并且连接终止,没问题.在我的Mac上,这也有效,但是当我检查Wireshark时,会有常规的终止过程[FIN,ACK]- [ACK]但后面跟着一个[TCP Dup ACK]数据包,因为Wireshark声称属于我的[FIN,ACK]数据包.这只发生在Mac上,并且不会发生在我的Mac或我的上网本上的VM上的Windows机器上...

我是否可以使用任何调整来不让这个Dup-ACK数据包被传输?它实际上通过声称关闭的会话仍然处于活动状态并且在连接到控制器10次后,堆栈中没有更多空间来接受新连接,从而使控制器中的堆栈猛然抬起.

如果有人能给我一个暗示,我真的很感激!

java sockets macos duplicates

5
推荐指数
1
解决办法
652
查看次数

标签 统计

duplicates ×1

java ×1

macos ×1

sockets ×1