gpt4 book ai didi

c# - TcpListener IPAdress.Parse 错误

转载 作者:可可西里 更新时间:2023-11-01 02:37:09 24 4
gpt4 key购买 nike

我正在使用 winforms 在 Windows 8 上制作一个简单的服务器/客户端应用程序。该程序工作正常,直到我使用我的外部 IP 地址 50.140.66.104 我收到错误。

System.dll 中出现类型为“System.Net.Sockets.SocketException”的未处理异常附加信息:请求的地址在其上下文中无效

我正在使用以下代码:

TcpListener listener = new TcpListener(IPAddress.Parse("50.149.66.104"), 8000);

为什么这个 IP 地址是个问题?提前致谢!!

最佳答案

我怀疑 IP 地址 50.149.66.104 是您面向 Internet 的地址。在您的 PC 上合法绑定(bind)的唯一 IP 地址是分配给该 PC 上的适配器的地址。您不能绑定(bind)到其他人的地址(例如您的路由器的互联网地址)。

至于安全性,这里应该没有真正的问题。 IPAddress.Any 所做的只是允许套接字监听 PC 上存在的所有适配器。如果出于某种原因您想要阻止在一个或多个适配器上对服务器的入站访问,您可以使用防火墙(Windows 的内置或第三方)来阻止特定适配器上的连接。

请注意,Windows 还将为特定网络维护单独的策略。即使是相同的适配器也可以配置为仅允许入站连接,例如当适配器连接到已知安全的网络,而不是“公共(public)”网络时。

如果您真的想在服务器级别将套接字绑定(bind)到机器中的特定网络适配器,您将需要找到适配器设置的 IP 地址,并绑定(bind)到该地址。不是您的公共(public) IP 地址。

关于c# - TcpListener IPAdress.Parse 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28056178/

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