【问题标题】:When to close TCP socket ? (The perfect case)何时关闭 TCP 套接字? (完美案例)
【发布时间】:2011-11-12 10:20:52
【问题描述】:

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

如果我想实现即时消息之类的聊天服务,在每条消息之后关闭套接字是不是很好,因为流量是一个很大的考虑因素?

我希望问题很清楚

【问题讨论】:

    标签: sockets tcp communication


    【解决方案1】:

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

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

    另一方面,如果您保持连接的时间过长并且没有任何套接字流量,则某些网络中间件(如路由器或防火墙)可能会在您的连接失效的情况下关闭您的连接。您必须考虑这一点,要么使用 keep-alive 功能,要么妥善处理重新连接。

    【讨论】:

    • 使用原始 TCP 套接字编程或 XMPP 哪个更好?
    • 很高兴你问:-)。 Facebook 使用 XMPP 进行聊天,例如 Google Talk。这也使大量客户端软件能够与您的应用程序进行交互。自己回答。
    猜你喜欢
    • 2011-01-26
    • 2015-12-07
    • 1970-01-01
    • 2015-09-04
    • 2012-02-10
    • 2011-08-08
    • 2013-04-29
    • 2011-08-07
    • 2015-10-16
    相关资源
    最近更新 更多