Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.Net SocketAsyncEventArgs的可重用性_.net_Sockets_.net Core_Tcp_Socketasynceventargs - Fatal编程技术网

.Net SocketAsyncEventArgs的可重用性

.Net SocketAsyncEventArgs的可重用性,.net,sockets,.net-core,tcp,socketasynceventargs,.net,Sockets,.net Core,Tcp,Socketasynceventargs,我只是想确保我了解可重用性特性。据我所知,SocketAsyncEventArgs可以用于一个连接和不同的操作。因此,我可以将相同的SocketAsyncEventArgs用于连接/发送/接收(客户端)或接受/发送/接收(服务器)? 还是我仍然需要为不同的操作使用新的SocketAsyncEventArgs 我也知道SocketAsyncEventArgs主要是为服务器端的高性能而设计的。因此,正确的用法是在服务器上有一个SocketAsyncEventArgs池,用于为每个连接保存一个Sock

我只是想确保我了解可重用性特性。据我所知,SocketAsyncEventArgs可以用于一个连接和不同的操作。因此,我可以将相同的SocketAsyncEventArgs用于连接/发送/接收(客户端)或接受/发送/接收(服务器)? 还是我仍然需要为不同的操作使用新的SocketAsyncEventArgs

我也知道SocketAsyncEventArgs主要是为服务器端的高性能而设计的。因此,正确的用法是在服务器上有一个SocketAsyncEventArgs池,用于为每个连接保存一个SocketAsyncEventArgs。以及为连接上的不同操作重用SocketAsyncEventArgs。在客户端,您可以只使用一个SocketAsyncEventArgs

我理解得对吗?不幸的是,我在文档中没有找到关于这一点的明确说明。

回答我自己的问题: SocketAsyncEventArgs替换开始…/结束…所需的IAsyncResult。。。方法。 因此,对于服务器,您仍然必须有一个用于侦听的套接字。但是现在每个连接的客户端都有一个SocketAsyncEventArg,而不是一个Socket。 SocketAsyncEventArgs可重用,因为它可用于同一连接客户端的所有操作。 改进之处在于,对于连接的客户端上的每个操作,您都没有IAsyncResult。这降低了GC上的压力