0
我的程序将停止在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;
}
此代码不显示您描述的行为。也显示'StartListening()'方法。 – CodeCaster
我不想问聪明,但为什么你甚至用'接受'? 'BeginAccept'会更好。 –
@CodeCaster你好,我的程序在干扰时甚至不显示“连接成功”这个词,我认为这不是问题点,所以我没有在StartListening()中发布代码,如果你认为真的有必要 – twlin