gpt4 book ai didi

sockets - 客户端无法访问在C#中绑定(bind)环回地址的服务器

转载 作者:行者123 更新时间:2023-12-03 11:54:16 25 4
gpt4 key购买 nike

现在server端一个socket绑定(bind)192.168.1.69:9000,然后开始监听。客户端使用 127.0.0.1:9000 连接服务器。但是失败了。但是,当客户端使用 192.168.1.69:9000 连接服务器时,它会起作用。
客户端和服务器都运行在同一个commputer上。
我的问题是:当客户端使用loopback地址连接服务器时,应该是成功的,但是失败了。为什么?

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;
}

最佳答案

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

this.pro_ListenSocket.Bind(new IPEndPoint(IPAddress.Any, this.pro_Port));

关于sockets - 客户端无法访问在C#中绑定(bind)环回地址的服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19546454/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com