2013-09-16 33 views
0

我的朋友将运行在端口8484.开始的TcpListener一个简单的C#控制台应用程序这是它如何被完成的:的TcpListener和插座连接失败

public static void Listen() 
{ 
    Listener = new TcpListener(IPAddress.Any, 8484); 
    Listener.Start(); 
    Listener.BeginAcceptSocket(new AsyncCallback(EndAccept), null); 
} 

public static void EndAccept(IAsyncResult IAR) 
{ 
    Console.WriteLine("Connection accepted on Port 8484."); 
    Socket socket = Listener.EndAcceptSocket(IAR); 
    Instance = new Client(socket); 
    Listener.Stop(); 
    Listener = null; 
} 

我使用连接到他:

public void Connect() 
{ 
    _socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 
    try 
    { 
     _socket.Connect(IP, Port); 

     Debug.WriteLine("Connected with server!"); 
    } 
    catch (Exception ex) 
    { 
     Debug.WriteLine(TypeName + " [ERROR] Could not connect to server @ {0}:{1}: {2}", IP, Port, ex.Message); 
    } 
} 

但是,由于某种原因 - 他不能接受连接,它说它没有回应。端口8484在他的电脑上100%打开。

为什么会发生这种情况?

+0

是端口8484在您的网络上打开? –

+0

你的朋友在哪里?在互联网广域网或局域网? –

+0

@DiegoCNascimento WAN。是的,港口是开放的。 – user2714359

回答

0

使用telnet验证与远程服务器的连接。例如。运行命令“telnet ip_address port”。如果它成功连接,则可以访问服务器。如果telnet无法连接,则无法访问服务器,可能是由于防火墙问题。

+0

如果远程主机在Windows功能中没有启用Telnet服务器,该怎么办?它会继续工作吗? – user2714359

+0

它想连接到您的服务器而不是Windows Telnet Server。无论如何,这似乎并不是防火墙问题,如果用户的肯定是正确的,但NAT问题。 –

+0

@DiegoCNascimento好吧,它说它无法连接。 – user2714359

0

尝试禁用防火墙。


1 - 帮助用户在聊天来测试防火墙的问题,现在也没有打开。这有问题