首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分散/收集.NET中的异步套接字I/O

分散/收集.NET中的异步套接字I/O
EN

Stack Overflow用户
提问于 2008-09-22 13:25:26
回答 4查看 1.2K关注 0票数 2

我正在尝试使用.NET中的Stream.BeginWrite异步I/ many来处理具有许多短消息的高吞吐量情况。因此,分散/聚集API将极大地减少上下文切换的数量(和CPU使用率)。此接口是否使用LPBUFFERS Win32接口?是否有用于分散/聚集I/O的替代API?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-07-13 10:00:00

根据微软的一篇博客文章,在.NET 4.5中可能有一个类似的.NET (不管是什么……)

票数 -2
EN

Stack Overflow用户

发布于 2015-06-01 12:05:56

看看.net的源代码,公认的答案似乎是错误的。

SocketAsyncEventArgs有一个BufferList属性。当使用这种方法时,操作可以使用散布/聚集Buffer属性,因为Socket.SendAsync(SocketAsyncEventArgs)在内部使用WSASend

允许指定多个发送缓冲区,使其适用于分散/聚集类型的I/O

Socket.SendAsync(SocketAsyncEventArgs)使用的是WSARecv

允许指定多个接收缓冲区,使其适用于分散/聚集类型的I/O

我手头没有.net 3.5的源代码,但是BufferList从.net 3.5开始就存在了,所以从.net 3.5开始可能就支持scatter/gather了。WSASend和WSARecv的最低操作系统要求记录为Windows Vista /Server2003。

注意:我不知道你使用的是什么流,但是NetworkStream.BeginWrite向WSASend发送了一个缓冲区,所以你不能用它来分散/聚集。

票数 2
EN

Stack Overflow用户

发布于 2008-09-22 13:29:08

如果你能从BCL获得分散/聚集api,我会很惊讶(它是用于l33t w1n32 haxx0rz的,你知道吗?),但是总是有P/Invoke (我发现它非常容易使用)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/114847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档