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

Sockets 在套接字编程中,通常只允许一次使用每个套接字地址(协议/网络地址/端口),sockets,Sockets,下面是我的代码,由于localEndPoint为null,因此引发异常“每个套接字地址只使用一次”“ListernSocket.Bind(localEndPoint)” 这是它第一次按预期工作,下一次LocalEndPoint变为null,并且它试图绑定相同的Ip和端口号 谢谢和问候, 卡尔蒂克 谢谢你的快速回复 实际上,您的标识是write,这是因为另一个方法在重复调用,并且LocalEndPoint为null 现在问题解决了 谢谢和问候, 卡提克 while (true)

下面是我的代码,由于localEndPoint为null,因此引发异常“每个套接字地址只使用一次”“ListernSocket.Bind(localEndPoint)”

这是它第一次按预期工作,下一次LocalEndPoint变为null,并且它试图绑定相同的Ip和端口号

谢谢和问候, 卡尔蒂克


谢谢你的快速回复

实际上,您的标识是write,这是因为另一个方法在重复调用,并且LocalEndPoint为null

现在问题解决了

谢谢和问候, 卡提克

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);
                }