【发布时间】:2015-03-27 01:42:50
【问题描述】:
我有一个持续维护套接字的客户端/服务器应用程序。当客户端退出时,它会向服务器发送一个“退出”消息,然后关闭套接字并进行清理。服务器在收到此消息时清理并关闭套接字 - 并且不回复该消息。
在相当定期的情况下,我看到服务器记录了“对等连接重置”错误,而最终用户没有任何投诉,我认为这一定是我的签核序列中偶尔出现的时间问题。当最终用户抱怨他们的连接实际上被丢弃时,我确实看到了同样的错误,所以我想知道如何区分这些场景之间的区别——或者更好的是,如何在正常情况下防止虚假的“连接重置”场景。
我猜在某些情况下,服务器会在收到“signing off”消息之前(或期间)被关闭的套接字击中。这可能吗?在实际关闭套接字之前,您是否应该遵循适当的顺序让服务器知道客户端即将终止?有什么方法可以在关闭之前检查最后一条消息是否已传递?
谢谢, 抢
【问题讨论】:
标签: sockets