使用DNS的简单TCP套接字连接中的数据丢失?

时间:2015-10-25 13:03:47

标签: sockets tcp dns routing network-programming

我有一个移动通信设备,它使用移动互联网3G与我的服务器进行通信。

场景1:当我使用IP地址创建TCP套接字并通过它发送数据时,服务器上会收到100%的已发送数据。

场景2:当我用域名替换IP地址时,有时移动设备甚至无法建立连接,甚至在连接时有时从未在服务器上收到从移动设备发送的数据。

我想使用域名,因为它们会使设置更易于管理,我也尝试使用确认来实现可靠性,但是它的开销过多。

问题是我如何使用域名并保持我的数据完好无损,我还会就如何简单地将IP地址更改为域名可以产生这样的问题进行一些解释。

1 个答案:

答案 0 :(得分:1)

使用IP地址和主机名作为目标的区别在于,在第二种情况下,需要首先使用DNS将名称解析为IP地址。在某些位置,DNS查询不会返回真实的IP地址。这通常是WLAN热点中的捕获门户的情况,但也可以与其他类型的流量拦截一起使用。因为您的应用程序然后连接到错误的IP地址,数据将无法到达您的服务器,而是到达其他主机。

  

..我如何使用域名并保持我的数据完好无损..

您可能需要在应用程序中添加某种身份验证,以便在发送任何敏感数据之前确保与正确的主机通信。这样你至少会注意到你连接到了错误的主机。