如果我要和某ip通信,用的是socket TCP连接,当我用connect()时候,发现返回值为0,这说明与对方建立连接,可是我ping 不通该IP。
  我一直有这样一个理解,如果ping不通该IP,应该connect不成功。
  我这理解是不是错了?

解决方案 »

  1.   

    估计是那个ip服务器禁止了ICMP通讯了吧,进而禁止了ping。但TCP连接还是可用的。
      

  2.   

    有些主机为了安全,关闭了ICMP通讯功能,这个很正常。例如你可以登录很多网站,但是你PING这些网站的网址不见得都PING得通。
      

  3.   

    那意思就是说我先前的理解有错误,能不能ping通跟TCP连接没有关系
    是这样的吗?
      

  4.   

    ping使用的是ICMP协议,你的socket连接使用的是TCP/UDP/原始数据报文,报文类型不一致,对方的处理方式也不一样。