TCP可能出现的错误/不可预测行为的文档

时间:2011-08-20 01:27:41

标签: sockets networking exception-handling tcp comet

我前段时间开始使用定制服务器,即使我有处理客户端/服务器通信的实际消息交换/序列化等方面的经验,我也从未编写过实际的服务器从头开始。 从这个意义上讲,我发现原始的TCP套接字连接比我想要的更复杂和难以预测。

例如,我编写了一个简单的客户端/服务器应用程序,它将建立一个长期存在的TCP连接,客户端将从服务器接收推送通知。非常简单,它在我的测试环境中运行得非常好,即使有很多计算机也是如此。

然而,当我实际发表这篇文章时,我已经遇到了很多错误,后来我发现这是缺乏保持信号,这会使连接被切断,而不给我(或者客户端或服务器)任何反馈/错误。消息根本无法传递,并且无声地失败。

我知道TCP可能会破坏连接,但我认为我至少可以收到错误,所以我可以在连接断开的情况下重新连接。 这让我对滚动自己的服务器非常不安全,因为可能的错误和场景看起来太多而且意外,我真的不想了解部署实际应用程序时的意外行为。根据我目前使用服务器端编程的经验,处理错误的最佳方法是枚举所有可能的错误,并确保在编写程序时涵盖所有特殊情况。

那么,有什么地方可以找到关于我可以通过套接字找到的可能陷阱/异常的良好文档,以及如何检测它们?自从我上次使用它以来已经有一段时间了,所以我没有更多新鲜的例子,但我记得,例如当你收到一条空信息时,就意味着连接中断了。

我也很乐意听到建议,或者可能是简单的libs(最好用C语言)来覆盖它们,这样我就可以将它的工作基于它了?我的主要平台是linux,但非常感谢跨平台解决方案!

谢谢!

0 个答案:

没有答案