我的程序将在Accept()
停止阻塞等待,它将启动一个新线程来处理已接受的套接字。
但是,有时客户端成功连接到服务器并发送数据, 我使用数据包嗅探工具检查服务器是否已收到数据, 但我的服务器程序停止,直到我按下Enter键;
按下回车键后,之前发送的所有数据都将被处理。
但我的程序中没有Console.Read()
。
这是我的代码:
static Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
public static int Main(String[] args)
{
listener.ReceiveTimeout = 10000;
listener.SendTimeout = 10000;
listener.Bind(localEndPoint);
listener.ReceiveBufferSize = 51200;
listener.SendBufferSize = 1283;
listener.Listen(30);
while(true) {
Socket clientSocket = listener.Accept();
Console.WriteLine("Connection Success");
var thread = new Thread(() => StartListening(clientSocket)) {
IsBackground = true
};
thread.Start();
}
return 0;
}
答案 0 :(得分:0)
我发现当我点击控制台时,控制台将转为选择模式,如下所示:
所有功能都将停止,所以我在commend窗口的设置中关闭“QuickEdit Mode”,然后问题似乎就解决了。