socket能接收所有客户端的请求怎么写(socket.Accept()的问题)

来源:百度知道 编辑:UC知道 时间:2024/06/22 03:18:13
stemp = s.Accept();这个方法只响应第一个请求,那怎么响应其他的请求呢?

//启动一个线程监听
System.Threading.Thread thread = new Thread(new ThreadStart(BeginListen));
thread.Start();

public void BeginListen()
{
//循环监听
while(true)
{
Socket sckClient = s.Accept();
}
}

我前不久做的一个程序的设计方法如下:
使用主进程循环监听端口,另外开辟一个公共的消息队列,开启多个线程来监听该队列。
主线程一旦接受到请求,就将连接句柄信息与请求数据包再打一次包,抛到公共消息队列中,然后继续循环监听端口。
监听消息队列的线程一旦发现消息队列中有包,就取出来进行相应处理。