2013-11-28 123 views
0

我製作了一個小型Windows服務,我需要從我自己的本地主機系統連接,但在運行應用程序時出現錯誤。由於目標計算機主動拒絕,無法建立連接127.0.0.1:8082

No connection could be made because the target machine actively refused it 127.0.0.1:8082 

,而它在實時IP和端口號完美工作,但我需要測試它在localhost作爲我不能訪問實時運行的IP每次..

這裏是我的代碼...

byte[] data = new byte[1024]; 
     string input, stringData; 
     String ip = "127.0.0.1"; 
     Int32 port = 8082; 
     string path = "D:\\"; 

      if (File.Exists("ipsettings.txt")) 
      { 
       File.Delete("ipsettings.txt"); 
      } 
      IPAddress ipad = IPAddress.Parse(ip); 
      IPEndPoint ipend = new IPEndPoint(ipad, port); 
      Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 
      try 
      { 
       sock.Connect(ipend); 

      } 
      catch (Exception ex) 
      { 
       throw ex; 
      } 

我在這一點上得到錯誤..

try 
      { 
       sock.Connect(ipend); 

      } 
      catch (Exception ex) 
      { 
       throw ex; 
      } 

請幫我解決這個問題..提前 謝謝..

+0

問問你的服務器它的問題是什麼? –

+0

@MartinJames sir這是本地主機,我的應用程序類型是在調試模式下運行的Windows服務 – Adi

+0

「主動拒絕」聽起來像是防火牆問題。 – Floris

回答

0

,而它在實時IP和端口號是完全工作

你怎麼知道的?錯誤說明完全相反。沒有人在該IP:端口上收聽。從sysinternals套件運行tcpview以瞭解更多信息。請注意,監聽機器自己的IP地址(如192.168.55.55),並監聽127.0.0.1,並監聽*(每個地址)是不同的事情。當連接到127.0.0.1時,它將成功連接到後兩者,但不是第一個。如果另一端正在監聽UDP,而不是TCP,它也可能會出錯。

+0

先生,這是我從我的團隊獲得的運行代碼。 – Adi

+0

我寧願相信錯誤信息:)。它說沒有人在聽,然後沒有人在聽。 – fejesjoco

+1

@Adi在命令行中使用'netstat -a'可以檢查服務是否在端口上偵聽。對於你的連接應該有一個類似'TCP 127.0.0.1:8082(...)LISTENING'或'TCP 0.0.0.0:8082(...)LISTENING'的行。如果只有'TCP 192.168.55.5:8082(...)LISTENING'(以@ fejesjoco爲例),服務綁定到特定的接口。然後問你的團隊尋求幫助...... –

相關問題