2013-11-28 154 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为例),服务绑定到特定的接口。然后问你的团队寻求帮助...... –

相关问题