首先,我接受Socket异步请求。
if (!_handle.AcceptAsync(_item)) AcceptClient(null, _item);
像这样处理它们。
private void AcceptClient(object s, SocketAsyncEventArgs e)
{
try
{
do
{
switch(e.SocketError)
{
case SocketError.Success:
// Do something with socket
break;
case SocketError.ConnectionReset:
break;
default:
throw new Exception("Socket Error");
}
e.AcceptSocket = null;
}
while (!_handle.AcceptAsync(e));
}
catch(ObjectDisposedException)
{
}
catch(Exception)
{
Disconnect();
}
}
因此,当套接字被异步接受时,它会在操作同步时循环。 (立即处理下一个)虽然我不明白这里有几件事。
当让20个客户端同时连接时,处理代码的行为如何? AcceptSync是否返回false并且需要在第一次异步后直接处理?有些人可以同时处理多个异步和一些同步吗?
在这种情况下可以调用多个回调吗?
谢谢!