2010-08-13 243 views
0

我正在使用客戶機/服務器,並且無法通過互聯網進行通信。如果我在同一臺計算機上運行它們,如果我有客戶端連接到localhost或我的網絡地址(192.168.1...),但它不起作用(錯誤10061:連接主動拒絕),如果我有客戶端連接到我的外部地址(99.141...)。我嘗試關閉防火牆,並且已經轉發了路由器上的端口,所以我不知道還有什麼要檢查的。該服務器由TcpListener類構成,客戶端由TcpClient類構成。服務器綁定到IPAddress::Any嘗試連接到我的服務器時出現錯誤10061

我檢查了netstat並且服務器在正確的端口上廣播,我只是無法連接到非本地。

+0

您可以遠程登錄到相關端口從本地箱在服務器上? – 2010-08-13 20:32:37

+0

不,telnet表示無法連接。 – 2010-08-13 20:36:59

+0

您的ISP可能會過濾掉非網絡流量嗎? – 2010-08-13 20:39:23

回答

1

您是否在外部地址99.141.xx上打開了端口轉發,例如,客戶端連接到端口901,它在專用C類網​​絡地址(例如192.168.1.x)上工作,是否已轉向在外部地址99.141.xx:901,以便它可以發送和輸出數據....您是否在外部地址99.141.xx:901上運行防火牆後面的服務器?

因此到MSDN文檔Winsock錯誤,10061是連接被拒絕......什麼地方下了線,客戶端試圖連接,但得到了拒絕......

這將有助於運行Wireshark的和調查數據包如果真的被傳送他們......

更可能的ISP已阻止傳入綁定數據包....

+0

我安裝了WireShark並在嘗試連接時運行它,但我並不確定我在看什麼。它看起來像連接正在發送和接收正常,但端口看起來不正確 我有一個數據包從192.168.1.75到99.141.65.30與源端口4364和目的地端口13005(大概是客戶端嘗試連接),然後另一個數據包從99.141.65.30到192.168.1.75,源端口爲13005,目的端口爲4364(假設連接回到服務器),但我不知道爲什麼它有那個目的地港口。 – 2010-08-13 20:57:39

+0

當你連接到一個服務器時,客戶端將使用一個可用的端口來連接*來自* - 所以4364客戶端的源端口(當客戶端是目的地時同樣是相同的端口)沒問題。 – 2010-08-13 21:11:56

+0

因此,如果第二個數據包回到了客戶端,那麼這是否意味着服務器沒有發送任何內容?由於我有「客戶端數據包」,後面跟着「數據包到客戶端」,沒有「數據包到服務器」,看起來客戶端永遠不會到達服務器。那麼在哪裏端口轉發設置不正確或我的ISP正在過濾端口? – 2010-08-13 21:39:38

相關問題