Вот мой приведенный ниже код, который выдает и исключение «Только одно использование каждого адреса сокета» «listernerSocket.Bind (localEndPoint)» * , поскольку LocalEndPoint равен нулю.
Впервые он работает, как ожидалось, и в следующий раз LocalEndPoint становится нулевым и пытается связать тот же Ip и номер порта.
Спасибо и с уважением, Kartik
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);
}