【问题标题】:TCP connection breaks after 1 message [closed]1条消息后TCP连接中断[关闭]
【发布时间】:2020-08-04 07:52:58
【问题描述】:

我有一个与 DNS 服务器通信的项目。例如,我使用了谷歌的 DNS 服务器。连接到服务器并发送消息后,一切正常,服务器返回答案。但是当我发送第二个查询时,服务器已经自己关闭了连接(发送 FIN),现在我向无效的 fd 发送了一条消息。这个问题有已知的解决方案吗?

【问题讨论】:

    标签: c++ networking tcp


    【解决方案1】:

    来自the DNS over TCP RFC

    服务器应该假设客户端会发起连接 关闭,并且应该延迟关闭连接的结束,直到 所有未完成的客户请求均已得到满足。

    这意味着如果您同时发送多个请求,则连接将保持打开状态,直到所有请求都得到答复。 但是一旦没有更多的挂起请求,连接就可以关闭了。

    如果您想发出多个请求,那么您需要一次发送所有请求,或者为每个请求创建新连接。

    【讨论】:

      猜你喜欢
      • 2019-05-18
      • 1970-01-01
      • 1970-01-01
      • 2017-05-24
      • 2015-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-31
      相关资源
      最近更新 更多