websocket的实例:http://blog.****.net/for_cxc/article/details/51500185
问题: 新建一个连接通信没有问题,但是如果关闭再建立就会报错:通常每个套接字地址(协议/网络地址/端口)只允许使用一次
解决方案:
源码:
; ]; IPEndPoint localEP = new IPEndPoint(IPAddress.Any, port); Socket listener = new Socket(localEP.Address.AddressFamily, SocketType.Stream, ProtocolType.Tcp); try { listener.Bind(localEP); listener.Listen(); sc = listener.Accept();//接受一个连接 //握手 int length = sc.Receive(buffer);//接受客户端握手信息 //sc.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true); listener.Close(); //关闭监听,释放端口 sc.Send(PackHandShakeData(GetSecKeyAccetp(buffer, length)));
原因是建立连接时候的监听没有关闭,所以端口没有释放。
重点:
listener.Close(); //关闭监听,释放端口