何时关闭TCP套接字? (完美的案例)

时间:2011-09-07 18:50:39

标签: sockets tcp communication

我正在开发一个使用TCP协议(套接字)传输日期的移动应用程序。 什么是完美的解决方案?是打开套接字并发送消息,如果我要发送另一条消息,我需要重复相同的序列,打开>发送>关闭? 或者,打开>发送> ..保持套接字打开..>再次发送> ..>关闭??

如果我想实现即时消息等聊天服务,那么在每条消息之后关闭套接字是否合适,因为流量是一个重要的考虑因素?

我希望问题很清楚

1 个答案:

答案 0 :(得分:1)

这取决于您通过电汇发送的消息的频率。如果您计划每隔一两秒发送一条消息,则应保持连接打开。这就是XMPP协议的工作原理 - 通过开放的TCP连接一次一个地传输XML。

保持连接打开有两个好处:首先建立连接需要付出代价。其次,由于TCP / IP slow-start功能的打开和关闭,连接永远不会允许您使用接近全网络带宽。

另一方面,如果您保持连接时间过长且没有任何套接字流量,一些网络中间件(如路由器或防火墙)可能会关闭您的连接,假设它已经死了。您必须考虑这一点,并使用 keep-alive 功能或正确处理重新连接。