這裏是我的代碼:Socket.Close()不會終止Socket.Accept()!
using System;
using System.Net;
using System.Net.Sockets;
public static void main()
{
Socket _SocketTCP = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
_SocketTCP.Bind(new IPEndPoint(IPAddress.Any, 1234));
_SocketTCP.Listen(5);
while (true)
{
Socket socket;
try
{
socket = _SocketTCP.Accept();
}
catch (ObjectDisposedException)
{
break;
}
Console.WriteLine("A Client Connected");
}
Console.WriteLine("Server Closed");
}
在另一個線程我叫_SocketTCP.Close();
。但是,在我調用_SocketTCP.Close();
方法後,while循環永遠不會退出並且「服務器已關閉」從不打印。 我在做什麼錯?
請創建可執行的repro代碼。通常情況下,這是有效的......我想。 – usr