现在的位置: 首页 > 综合 > 正文

Socket绑定网络端口

2013年10月01日 ⁄ 综合 ⁄ 共 790字 ⁄ 字号 评论关闭

用socket绑定网络端口时候出现错误,“使用了与请求的协议不兼容的地址”。 这个错误时由于可能获取了多个IP地址,且有地址采用的是IPV6协议。

必须筛选出IPV4的地址,然后再去绑定网络端口。

代码如下:

            string hostName = Dns.GetHostName();  //主机名
            IPAddress[] ips = Dns.GetHostAddresses(hostName);  //主机网卡的IP列表
            IPAddress HostIp=ips[0]; //保存主机ip

           //筛选IP
            foreach (IPAddress ip in ips)
            {
                //筛选出IPV4地址
                if (ip.AddressFamily == AddressFamily.InterNetwork)
                {
                    HostIp = ip;
                }
            }
            

            //创建一个网络端点
            IPEndPoint iep = new IPEndPoint(HostIp, 82);

            //创建服务端服务端套接字
            Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

            //将套接字与网络端点绑定
            serverSocket.Bind(iep);

            //将套接字置为侦听状态,并设置最大队列数为10

抱歉!评论已关闭.