2 u011561289 u011561289 于 2016.04.10 22:59 提问

C#关于SocketAsyncEventArgs
c#

图片说明

C# SocketAsyncEventArgs, 什么情况下BytesTransferred > Count
如图 e.SetBuffer设置需要接收8字节, 这里BytesTransferred为什么偶尔会出现14

5个回答

u011561289
u011561289   2016.04.14 16:46
已采纳

还有一个相关的BUG https://github.com/dotnet/corefx/pull/3575

看来最稳妥的方式是不重用SocketAsyncEventArgs,每次Socket调用都创建一个新SAEA

CSDNXIAON
CSDNXIAON   2016.04.11 00:32

c#
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

devmiao
devmiao   Ds   Rxr 2016.04.11 04:57
u011561289
u011561289 谢谢,但帖子只讨论大致方法,没有涉及到细节。
一年多之前 回复
u011561289
u011561289   2016.04.11 14:52

在一台win7的机器上,并发1000连接会出现这种情况,其他一台xp、win7、mac(mono)上都是正常的 - -!

u011561289
u011561289   2016.04.14 15:27

在多核心CPU高并发下,似乎确实有此BUG
https://social.msdn.microsoft.com/Forums/en-US/40fe397c-b1da-428e-a355-ee5a6b0b4d2c/socketasynceventargssetbuffer-bug-?forum=ncl

有没有好的解决方案???

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!