异步套接字操作如何表现? C#

时间:2016-05-17 13:27:07

标签: c# sockets asynchronous

首先,我接受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并且需要在第一次异步后直接处理?有些人可以同时处理多个异步和一些同步吗?

在这种情况下可以调用多个回调吗?

谢谢!

0 个答案:

没有答案