【发布时间】:2016-06-25 16:12:09
【问题描述】:
这是我的代码:
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 循环永远不会退出并且“服务器已关闭”永远不会打印出来。
我做错了什么??
【问题讨论】:
-
请创建可执行的重现代码。通常,这是可行的……我认为。
标签: c# multithreading sockets networking