我試圖用連接在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