[2015/11/17] -C#- 服务器调试 SocketException 使用了与请求的协议不兼容的地址

在C#中进行服务器调试时遇到了'System.Net.Sockets.SocketException'异常,提示使用了与请求的协议不兼容的地址。报错源于_EnableBroadcast_和_MulticastLoopback_属性。原始代码中,CreateTcpServer函数返回值未被正确处理,且Dns.GetHostEntry(ip).AddressList可能导致异常。解决办法包括检查CreateTcpServer的返回值以及避免使用Dns.GetHostEntry(ip).AddressList,简化代码逻辑。
摘要由CSDN通过智能技术生成
报错内容:

“_listener.EnableBroadcast”引发了“System.Net.Sockets.SocketException”类型的异常
“_listener.MulticastLoopback”引发了“System.Net.Sockets.SocketException”类型的异常

当然这个到最后调试成功了还是没有避免这两个异常。。

最关键的是这个,被System.dll抛出的SocketException使用了与请求的协议不兼容的地址。


原来的代码:

_server = new NetTCPServer();
_server.CreateTcpServer("127.0.0.1", 10001))

Console.WriteLine("启动聊天服务器!");


这是被调用的代码:

public bool CreateTcpServer( string ip, int listenPort )
        {
            _port = listenPort;
            _listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

            foreach (IPAddress address in Dns.GetHostEntry(ip).AddressList)
            {
         
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值