异步套接字操作的行为如何?C#
首先,我接受套接字异步请求异步套接字操作的行为如何?C#,c#,sockets,asynchronous,C#,Sockets,Asynchronous,首先,我接受套接字异步请求 if (!_handle.AcceptAsync(_item)) AcceptClient(null, _item); 像这样处理他们 private void AcceptClient(object s, SocketAsyncEventArgs e) { try { do { switch(e.SocketError)
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,并且需要在第一个异步之后直接处理这些内容?在这样的实例中,一些是异步的,而另一些是同步的,可以同时处理多个实例吗
在这种情况下可以调用多个回调吗
谢谢