2014-03-25 952 views
0

使用winsock如下圖所示,我們向TCP端口8000發送了信息。但是有時我們會收到像Connection is forcefully rejected(錯誤編號10061)和Connection is aborted due to timeout or other failure(錯誤編號10053)的錯誤。但在這兩個pc防火牆被禁用。所以我認爲端口不會因防火牆而關閉。那麼如何解決這些錯誤。連接被強制拒絕

Dim TempWinClient As New AxMSWinsockLib.AxWinsock 

TempWinClient.RemoteHost = PCName 
TempWinClient.RemotePort = Port   
TempWinClient.Tag = Message   
TempWinClient.Connect() 

回答

1

首先,在任何.Connect之前,總是調用WinSock控件上的.Close方法。我不知道AxmsWinsockLib是什麼,是Winsock API的包裝器?

無論如何,你的問題:

防火牆是不是在這樣的嘛。 端口需要在監聽服務器的路由器上轉發;在這種情況下,端口號爲8000

所以在服務器上,你試圖連接到:

  1. 看看是不是迷上了一臺路由器。你需要它的「默認網關」。
  2. 打開命令提示符並鍵入「ipconfig」,不帶引號。找到正確的適配器,查看IP地址(通常爲192.168.1.x),然後找到默認網關。請注意IP地址!
  3. 默認網關是要連接到通過Web瀏覽器如Internet Explorer(呸),谷歌Chrome,火狐路由器的IP地址等
  4. 打開您選擇的Web瀏覽器,鍵入:htp://192.168.0.1(http,不是htp)其中192.168.0.1默認網關
  5. 系統會提示您輸入用戶名和密碼。在你的路由器的模型上搜索默認密碼,但通常是admin/admin,administrator/admin或其他東西都可以。
  6. 瀏覽菜單並找到一個叫做端口轉發的東西。每個路由器都不同,你可能不得不穀歌搜索「[router model here port forwarding」)來獲取指令。
  7. 進入端口轉發頁面後,輸入您應該記下的IP地址。這將告訴路由器將端口8000上的數據包轉發到正確的計算機。
  8. 輸入端口號(8000)並應用設置。

然後嘗試重新連接。

+0

我觀察過一件事。服務器應用程序將於晚上8.30左右關閉。我的問題是我在下午2點41分給服務器發送消息,並且在晚上8點9分在客戶端電腦上出現'連接被強制拒絕'的錯誤。爲什麼我的信息沒有被持有/收聽,直到晚上8點30分?其他消息在2.41 PM之後從同一臺PC發送到服務器應用程序已成功處理。那麼可能是什麼問題? –