在套接字编程中通常只允许使用每个套接字地址(协议/网络地址/端口)

时间:2018-05-24 06:55:10

标签: sockets

这是我的下面的代码,它是抛出和异常"每个套接字地址只有一种用法" " listernerSocket.Bind(localEndPoint)" ,因为LocalEndPoint为null。

它第一次按预期工作,下次LocalEndPoint变为null并尝试绑定相同的IP和端口号。

谢谢&问候, 卡尔蒂克

while (true)
                {
                    if (listernerSocket.LocalEndPoint == null)
                    {
                        listernerSocket.Dispose();
                        listernerSocket.Close();
                        IPEndPoint localEndPoint = new IPEndPoint(assigningIp, Constants.MystroServicePortNo);
                        listernerSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                        listernerSocket.Bind(localEndPoint);
                        listernerSocket.Listen(100);
                    }
                    var acceptedSocket = listernerSocket.Accept();
                    var state = new StateObject { BufferSize = 6000, Socket = acceptedSocket };
                    acceptedSocket.BeginReceive(state.Buffer, 0, state.BufferSize, 0, this.ReadCallback, state);
                    acceptedSockets.Add(acceptedSocket);
                }

1 个答案:

答案 0 :(得分:0)

感谢您的快速回复。

实际上你的识别是写的,这是因为另一种方法是重复调用而且LocalEndPoint是null。

现在已经解决了。

谢谢&问候, Kartik K