我试图用连接在C远程服务器的API,但总是有以下错误信息:无法连接到主机C:在Windows上找不到主机名(11001),DNS问题?
log_message: 15:13:19.489 I [ap:1388] Connecting to AP A3.spotify.com:4070
log_message: 15:13:19.490 E [ap:1324] AP Socket Error: Hostname not found (11001)
log_message: 15:13:19.491 E [ap:3396] Connection error: 4
log_message: 15:13:19.491 I [ap:1388] Connecting to AP A1.spotify.com:80
你可以用日期看,该错误信息是瞬时的,所以我认为某些东西阻塞了我的电脑本地的信息。
这里是我使用Wireshark捕获的TCP流:
30 1.682802 MyLocalIp 193.182.8.15 HTTP Continuation or non-HTTP traffic
31 1.702236 193.182.8.15 MyLocalIp HTTP Continuation or non-HTTP traffic
33 1.901706 MyLocalIp 193.182.8.15 TCP 50222 > http [ACK] Seq=12 Ack=12 Win=251 Len=0
因此,根据Wireshark的,通过我的计算机发送的第一消息具有不正确的报头的校验和。
我知道主机是正确的,因为当我使用相同的C API在Java中与JNA,我有以下结果:
log_message() called:15:46:48.718 I [ap:1388] Connecting to AP A1.spotify.com:4070
log_message() called:15:46:53.769 E [ap:1324] AP Socket Error: Undefined Error 0x4E20 (20000)
log_message() called:15:46:53.770 E [ap:3396] Connection error: 117
log_message() called:15:46:53.770 I [ap:1388] Connecting to AP A2.spotify.com:80
log_message() called:15:46:53.789 I [ap:938] Connected to AP: 193.182.8.12:80
所以,这里的连接端口4070,这是正常的失败因为它是由该公司的防火墙阻止,然后将其成功在端口80
这里是Wireshark的捕获的Java版本:
104 6.296125 MyLocalIp 193.182.8.15 TCP 50339 > http [SYN] Seq=0 Win=8192 Len=0 MSS=1460 WS=8 SACK_PERM=1
107 6.575599 193.182.8.15 MyLocalIp TCP http > 50339 [SYN, ACK] Seq=0 Ack=1 Win=5840 Len=0 MSS=1460 SACK_PERM=1 WS=7
108 6.575732 MyLocalIp 193.182.8.15 TCP 50339 > http [ACK] Seq=1 Ack=1 Win=65536 Len=0
109 6.582627 MyLocalIp 193.182.8.15 HTTP Continuation or non-HTTP traffic
110 6.614789 193.182.8.15 MyLocalIp TCP http > 50339 [ACK] Seq=1 Ack=512 Win=6912 Len=0
112 6.714201 193.182.8.15 MyLocalIp HTTP Continuation or non-HTTP traffic
113 6.722057 MyLocalIp 193.182.8.15 HTTP Continuation or non-HTTP traffic
115 6.746484 193.182.8.15 MyLocalIp TCP http > 50339 [ACK] Seq=500 Ack=677 Win=8064 Len=0
116 6.750938 193.182.8.15 MyLocalIp HTTP Continuation or non-HTTP traffic
117 6.751093 MyLocalIp 193.182.8.15 HTTP Continuation or non-HTTP traffic
118 6.985366 193.182.8.15 MyLocalIp HTTP [TCP Retransmission] Continuation or non-HTTP traffic
119 6.985416 MyLocalIp 193.182.8.15 TCP [TCP Dup ACK 117#1] 50339 > http [ACK] Seq=787 Ack=544 Win=65024 Len=0 SLE=500 SRE=544
121 7.013666 193.182.8.15 MyLocalIp HTTP Continuation or non-HTTP traffic
124 7.213661 MyLocalIp 193.182.8.15 TCP 50339 > http [ACK] Seq=787 Ack=1803 Win=65536 Len=0
132 7.703708 MyLocalIp 193.182.8.15 HTTP [TCP Retransmission] Continuation or non-HTTP traffic
133 7.721265 193.182.8.15 MyLocalIp HTTP Continuation or non-HTTP traffic
我尝试添加的IP我的System32/drivers/etc/hosts文件中的主机名为A1.spotify.com,A2.spotify.com和A3.spotify.com的193.182.8.15,但它没有改变任何内容。
我关闭了Windows防火墙和杀毒软件,它并没有帮助。
我试过在家里运行该公司没有代理服务器和防火墙,但它是相同的(除了在Java版本的服务能够在端口4070连接)
任何想法?
谢谢!
窗/ SYSTEM32 /司机/ etc/hosts文件是相当于“resolv.conf的”,他说他试了一下。 – selbie 2011-03-13 14:51:07
主机文件不等同于resolv.conf文件。一个(主机文件)将主机名解析为一个IP地址。另一个(resolv.conf)配置哪些DNS服务器将被查询以及哪些域名可能被追加到“开始”主机名。 – 2011-03-14 17:16:31
感谢您对Wireshark错误标题校验和的说明。我不相信这是一个DNS问题,因为通过JVM使用API时正确解析了主机名,并且能够ping通它。 – nbarraille 2011-03-17 01:05:20