关于socket监听的问题
我的服务器端监听程序如下:
socket.Bind(localhost);
while (true)
{
socket.Listen(0);
Socket newSocket=socket.Accept();
string rcvStr= " ";
byte[] rcvBytes=new byte[1024];
int iCount=newSocket.Receive(rcvBytes,rcvBytes.Length,0);
rcvStr +=Encoding.ASCII.GetString(rcvBytes,0,iCount);
//这里是主要的处理过程,耗时一般较久
...
}
现在我发现这个监听程序只能同时处理一个请求,如果该请求正在处理,另外一个请求发过来时,这个服务器端并不会接收到,我应该怎么做呢?只有这么多分了,请大家不要嫌分少
------解决方案--------------------用异步吧。BeginAccept,EndAccept
------解决方案--------------------新建一个线程来接受Socket的信息。
接受方法不要跟监听放在同一线程里