没有连接到C#中的服务器问题

时间:2009-07-01 14:23:09

标签: c# connection tcpclient

我正在运行客户端/服务器应用程序。我使用文本框让用户输入IP地址和端口。我尝试使用127.0.0.1连接到服务器,没有问题。之后我尝试使用192.168.2.102(这台计算机的NAT IP地址),但它失败了。知道为什么吗?

我正在使用的代码是:(这是连接的部分)

connect(string IPaddress, int port)
{
    TcpCLient connection = new TcpClient();
    connection.Connect(IPaddress, port);
}

我检查了调试,它使用正确的IP地址和端口。 防火墙应该允许它连接。这很奇怪。

修改 我想我知道这个问题。在服务器端,我使用

_listener = new TcpListener(IPAddress.Loopback, 8001);

我认为这就是它只接受来自127.0.0.1的连接的原因。但那么,我应该使用什么呢?我只想要任何IP与此端口的任何连接。

2 个答案:

答案 0 :(得分:3)

如果要指定IPAddress.Loopback,则只能连接到127.0.0.1。将其替换为IPAddress.Any,告诉服务器监听所有接口。

答案 1 :(得分:0)

首先,我见过的唯一回复Connection was not possible because the destination computer actively rejected it的情况是,当实际上没有人在指定的地址和端口上监听连接时......或者有防火墙。

您可能希望使用tracert验证192.168.2.102实际指向您认为的位置。另一种选择是使用命令行中的telnet连接到地址和端口,如果你真的怀疑代码中有问题(虽然我看不到这里适用)。

<强>附录:
是否有任何其他应用程序可以成功连接到同一台计算机上的特定IP地址?