关于socket的异步操作 xxxxasync

问题描述

当使用完成端口时,可以使用socket的acceptasync,sendasync,recvasync,按文档所说,返回false就表示成功完成了,返回true表示要等待异步操作完成,但反编译其实现代码时发现,返回值生成如下boolflag;if(socketError!=SocketError.Success&&socketError!=SocketError.IOPending){e.FinishOperationSyncFailure(socketError,bytesTransferred,SocketFlags.None);flag=false;}else{flag=true;}明显是出了错误返回false,没有出错返回true,为保和文档描述的不一致?另外SocketAsyncEventArgs的completed事件一直找不到是哪里触发的请高手指点

解决方案

解决方案二:
文档描述确实有歧义,但是返回true也可能会出错。
解决方案三:
返回true的情况下,在操作完成之后会触发Completed。
解决方案四:
异步操作就去注册一下。比如人家说异步地“买麦当劳外卖”,那么这个意思就是说你告诉对方了、这就算是订餐成功了(等它备好餐,会另外通知你来取)。你不能认为对方给你餐才算成功。
解决方案五:
recvasync返回成功,就是说它"知道"了,而以。看来你还是满脑子同步顺序操作的概念,还没有理解异步操作和并发操作的概念。
解决方案六:
档描述确实有歧义,但是返回true也可能会出错。
解决方案七:
这个文档完全没有问题。返回false的时候就是说你的操作立刻失败了,不用等completed事件了。可以去检查参数参数e,通常的情况下能找到错误的信息。

时间: 2024-08-02 17:59:49

关于socket的异步操作 xxxxasync的相关文章

与众不同 windows phone (30) - Communication(通信)之基于 Socket TCP 开发一个多人聊天室

原文:与众不同 windows phone (30) - Communication(通信)之基于 Socket TCP 开发一个多人聊天室 [索引页][源码下载] 与众不同 windows phone (30) - Communication(通信)之基于 Socket TCP 开发一个多人聊天室 作者:webabcd 介绍与众不同 windows phone 7.5 (sdk 7.1) 之通信 实例 - 基于 Socket TCP 开发一个多人聊天室 示例1.服务端ClientSocketP

C#TCP通信时模拟客户端断开后服务端的CPU使用率从45%上升到80%-90%

问题描述 我使用C#的TCPlistener写了一个TCP服务端的程序,用来向连接到服务端的客户端发送数据的,客户端发送不同的请求就发送相应的数据,没有请求数据就什么也不发送:发送的数据是从另一个端口接收到的UDP的报文解析后的数据服务端程序包括接收及解析UDP报文,和TCPlistener监听(有连接请求就建立一个线程为这个连接服务,连接断开就终止线程)现在当服务端程序启动,就开始接收UDP报文并解析,如果有连接请求,就创建线程并为连接服务,当模拟器客户端断开连接,CPU使用率就会迅速增长到8

Socket类中提供的支持异步操作的方法

在网络编程中运用Socket,常常需要长期监听某个端口,以获得Socket连接,进而执行相关操作. 但此时,主线程就会被阻塞,无法做其他事情.为了解决这类问题,Socket类中提供了一些支持异步操作的方法,如表17-10所示. 表17-10 Socket类中支持异步操作的方法 方法 说明 BeginAccept() 开始一个异步请求,以创建一个新的Socket对象来接受传入的连接请求 EndAccept() 结束一个异步请求,以创建一个新的Socket对象来接受传入的连接请求 BeginConn

c# socket同步操作代码改异步操作,客户端界面错误问题

问题描述 c# socket同步操作代码改异步操作,客户端界面错误问题 c# socket同步操作代码改异步操作,客户端软件界面错误如下:一点击数据源配置模块,就提示数据解析错误,请重启客户端.除了首页模块是正确的以外,点击文件修复和授权信息界面信息都出不来,而且软件卡死,按右上角的关闭键也无法退出.项目采用.net三层架构,修改后的socket类的异步传输部代码如下: 解决方案 图太小,代码不全,你跳出的这个错误框的代码在哪里. 解决方案二: public static bool Socket

续实例解析SOCKET编程模型之异步通信篇(上)

编程|异步 .NET 框架的 Socket 类实际上是 Winsock32 API 提供的套接字服务的托管代码版本.其中Socket 类为网络通信提供了一套丰富的方法和属性,大多数情况下,Socket 类方法只是将数据封送到它们的本机Win32 副本中并处理任何必要的安全检查.Socket 类允许使用 ProtocolType 枚举中所列出的任何一种协议执行异步和同步数据传输.Socket 类遵循异步方法的 .NET Framework 命名模式:例如,同步 Receive 方法对应于异步 Be

续实例解析SOCKET编程模型之异步通信篇(下)

编程|异步 异步客户端套接字在等待网络操作完成时不挂起应用程序.相反,它使用标准 .NET Framework 异步编程模型在一个线程上处理网络连接,而应用程序继续在原始线程上运行.异步套接字适用于大量使用网络或不能等待网络操作完成才能继续的应用程序. Socket 类遵循异步方法的 .NET Framework 命名模式:例如,同步 Receive 方法对应异步 BeginReceive 和 EndReceive 方法. 异步操作要求回调方法返回操作结果.如果应用程序不需要知道结果,则不需要任

关于PHP实现异步操作的研究

  1.为啥PHP需要异步操作? 一般来说PHP适用的场合是web页面展示等耗时比较短的任务,如果对于比较花时间的操作如resize图片.大数据导入.批量发送EDM.SMS等,就很容易出现操作超时情况.你可以说我可以设置无限超时时间,等等你也要知道PHP有一个工作模式是fastcgi,PHP无限不超时,不代表fastcgi相应不超时--如果你还想说要fastcgi相应永不超时,我建议你应该跟你们的运维人员讨论去-- 这个时候异步的操作就发挥他的作用了,由于是非阻塞操作,操作会即时返回,然后在后台

C#下的Raw Socket编程实现网络封包监视

编程|网络 谈起socket编程,大家也许会想起QQ和IE,没错.还有许多网络工具如P2P.NetMeeting等在应用层实现的应用程序,也是用socket来实现的.Socket是一个网络编程接口,实现于网络应用层,Windows Socket包括了一套系统组件,充分利用了Microsoft Windows 消息驱动的特点.Socket规范1.1版是在1993年1月发行的,并广泛用于此后出现的Windows9x操作系统中.Socket规范2.2版(其在Windows平台上的版本是Winsock2

用C#下的Raw Socket编程实现网络封包监视

编程|网络 谈起socket编程,大家也许会想起QQ和IE,没错.还有许多网络工具如P2P.NetMeeting等在应用层实现的应用程序,也是用socket来实现的.Socket是一个网络编程接口,实现于网络应用层,Windows Socket包括了一套系统组件,充分利用了Microsoft Windows 消息驱动的特点.Socket规范1.1版是在1993年1月发行的,并广泛用于此后出现的Windows9x操作系统中.Socket规范2.2版(其在Windows平台上的版本是Winsock2