c#-C#关于SocketAsyncEventArgs

问题描述

C#关于SocketAsyncEventArgs

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

解决方案

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

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

解决方案二:

c#

解决方案三:

http://bbs.csdn.net/topics/390601098

解决方案四:

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

解决方案五:

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

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

时间: 2024-10-30 03:06:34

c#-C#关于SocketAsyncEventArgs的相关文章

使用.net3.5的缓存池和SocketAsyncEventArgs类创建socket服务器

在.NET 3.5里System.Net.Sockets空间下有一组增强功能的类,提供可供专用的高性能套接字应用程 序使用的可选异步模式,SocketAsyncEventArgs 类就是这一组增强功能的一部分.该类专为需要高性能 的网络服务器应用程序而设计.应用程序可以完全使用增强的异步模式,也可以仅仅在目标热点区域(例 如,在接收大量数据时)使用此模式.以下是关于此类的介绍(摘自MSDN) http://msdn.microsoft.com/zh-cn/library/system.net.s

现在已经正在使用此 SocketAsyncEventArgs 实例进行异步套接字操作。

问题描述 1,利用一个Socket循环发送信息采取的措施(绿色框):1,如果执行模块不返回标志位,则会一直再循环里面执行,等待2,对对象上锁结论:以上两种种措施均不起作用其中蓝色框为出错语句各位大神拜托了 解决方案 解决方案二:怎么没人哇~~~~顶一下解决方案三:一个人没有解决方案四:不会...不过这东西很多人都基于SocketAsyncEventArgs封装的很不错了.直接拿来用就OK了..自己写没太大意义.解决方案五:看了一下代码,是发送失败后不断重试发送lock里的代码都是立即返回,不会存

socket-关于SocketAsyncEventArgs异步发送数据后程序自动退出的问题

问题描述 关于SocketAsyncEventArgs异步发送数据后程序自动退出的问题 最近用SocketAsyncEventArgs来做socket异步通信的服务器,按照官方的例程来写代码,发现异步接收是没有问题的,但是如果用异步发送,发送后程序就自动退出, 调试提示 在 System.InvalidOperationException 中第一次偶然出现的"System.dll"类型的异常 这是发送和接收的代码: //有连接来到时的回调函数 private void OnAccept

SocketAsyncEventArgs使用解说

原文:SocketAsyncEventArgs使用解说         如果在.NET下写过网络通讯的同学应该感觉不陌生了,有很多刚入门的同学很多都认为这东西可以大大提高处理效能还有就是使用上很不适应.其实使用之前最好通过MSDN了解一下,该对象紧紧是Begin End模式的一个增强版本,它的主要作用主要是解决之前异步过程时创建不可复用的异步对象而产生的.主要是在高并发下节省大量对象重分配和同步相关问题,从而实现在高并发吞吐下更少的资源损耗(如果你的应用紧紧是密集通讯那性能提供相对来说是可观一点

udp 使用 SocketAsyncEventArgs,一段时间后可能出现收不到任何包或者发不出去任何包

问题描述 我在使用SocketAsyncEventArgs做udpserver的时候发现在一些服务器上会出现,一段时间可能收不到任何包或者发不出去任何包,主要代码如下SocketAsyncEventArgsreceiveSocketArgs;m_SendArgPool=newSocketAsyncEventArgsPool(maxConnectionNumber);for(inti=0;i<maxConnectionNumber;i++){SocketAsyncEventArgssendsock

关于SocketAsyncEventArgs资源释放的问题

问题描述 最近写个网络程序用到SocketAsyncEventArgs类,参考网上资料初步完成,可是测试时发现内存大量增加,资源释放不掉.每次有一个socket接入后,内存增加,然后断开socket程序内存也在增加.我是当一个socket断开,调用下面函数publicvoidDispose(){try{this.connection.Shutdown(SocketShutdown.Send);}catch(Exception){//Throwifclienthasclosed,soitisnot

.net 3.5平台上的Socket开发

在之前的文章中,我们讲了如何在.NET 2.0下面开发Socket项目.其中的异步Socket让我们得以很轻 松的在.NET中开发高性能服务端应用. 但是,在实际应用中我们还是发现了一些问题的存在,如:我们在每一次操作的过程中都要创建一个 IAsyncResult上下文对象,如果数据通讯很频繁的话,会导致大量的IAsyncResult对象被创建,大大的增 加了垃圾回收器的工作量,从而降低了整个应用的效率. 在.NET 3.5中,这个麻烦已经被解决了,在3.5 版本中,Socket定义了一些新的方

Silverlight Socket 实现收发信息

原文 http://www.cnblogs.com/ZetaChow/archive/2009/05/16/2237347.html 刚接触Silverlight的时候,除了其异步应用WCF.流媒体.动画效果等方面外,Socket是最另我兴奋的功能.   在Web上实现Socket虽然不是什么新鲜事了,Activex,flash等都可以实现这样的效果,但是Silverlight这样方便的运用Socket让服务器与客户端通信确是我之前没有体验过的.   用它可以做什么?可以连线式的让服务器与客户端

[转贴]Silverlight Socket 实现收发信息

原文:http://blog.csdn.net/banmuhuangci/archive/2009/05/16/4192031.aspx  刚接触Silverlight的时候,除了其异步应用WCF.流媒体.动画效果等方面外,Socket是最另我兴奋的功能.在Web上实现Socket虽然不是什么新鲜事了,Activex,flash等都可以实现这样的效果,但是Silverlight这样方便的运用Socket让服务器与客户端通信确是我之前没有体验过的. 用它可以做什么?可以连线式的让服务器与客户端交互