2

现在服务器端的一个socket绑定了192.168.1.69:9000,然后开始监听。客户端使用 127.0.0.1:9000 连接服务器。但是失败。但是,当客户端使用 192.168.1.69:9000 连接服务器时,它可以工作。
客户端和服务器都在同一台计算机上运行。
我的问题是:当客户端使用环回地址连接服务器时应该成功,但失败。为什么?

Server Code:
this.pro_ListenSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
this.pro_ListenSocket.ReceiveBufferSize = this.pro_BufferSize;
this.pro_ListenSocket.SendBufferSize = this.pro_BufferSize;
try
{
     this.pro_ListenSocket.Bind(new IPEndPoint(this.pro_ServerIP, this.pro_Port));
}
catch (SocketException socketError)
{
     return false;
}
catch (Exception)
{
     return false;
}
try
{
     this.pro_OnRunning = true;
     this.pro_ListenSocket.Listen(500);
     this.StartToAcceptClient(this.pro_ListenSocket);
}
catch (Exception ex)
{
    return false;
}
4

1 回答 1

1

Loopback 被表示为一个网络适配器,就像任何其他的一样。您已将服务器设置为仅侦听位于 192.168.1.69 的适配器上的连接。IPAddress.Any如果您希望服务器侦听其他适配器,最简单的方法是通过指定地址(0.0.0.0)使其在所有可用适配器上可用。

this.pro_ListenSocket.Bind(new IPEndPoint(IPAddress.Any, this.pro_Port));
于 2013-10-23T15:55:59.660 回答