c#endread怎么打印出来_c# – Socket.EndRead 0字节意味着断开连接?
我想知道在c#中的异步套接字中,在EndRead调用中接收0个字节意味着服务器实际上已经断开了我们的连接吗?
我看到的很多例子都表明情况就是这样,但我收到的断线频率要高得多.
这段代码是否正确?或者endResult< = 0对连接状态没有任何意义?
private void socket_EndRead(IAsyncResult asyncResult)
{
//Get the socket from the result state
Socket socket = asyncResult.AsyncState as Socket;
//End the read
int endResult = Socket.EndRead(asyncResult);
if (endResult > 0)
{
//Do something with the data here
}
else
{
//Server closed connection?
}
}
解决方法:
0读取长度应该意味着gracefull关闭.断开连接抛出error(10054,10053或10051).
实际上虽然我确实注意到读取完成时长度为0,即使连接处于活动状态,唯一的处理方法是检查0长度读取时的套接字状态.情况如下:在套接字上发布多个缓冲区以进行接收.然后发布的线程被池修剪.操作系统注意到发出请求的线程已经消失,它会通过错误995 ERROR_OPERATION_ABORTED通知发布的操作,如文档所述.然而,我发现当发布多个操作(即多次读取)时,只有第一个通知错误995,后续通知成功和0长度.
标签:c,asynchronous,sockets
来源: https://codeday.me/bug/20190610/1214495.html
c#endread怎么打印出来_c# – Socket.EndRead 0字节意味着断开连接?相关推荐
- c#endread怎么打印出来_C#编程直接发送打印机命令到打印机及ZPL常用的打印命令详解...
本文主要向大家介绍了C#编程直接发送打印机命令到打印机及ZPL常用的打印命令详解,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助. using System; using System.Co ...
- c#endread怎么打印出来_C#教程之打印和打印预览
最近研究一了一下关于PDF打印和打印预览的功能,在此小小的总结记录一下学习过程. 实现打印和打印预览的方法,一般要实现如下的菜单项:打印.打印预览.页面设置. PrintDocument类 Print ...
- c#endread怎么打印出来_C#中如何打印出整个PANEL的内容?
需要将整个PANEL中的内容打印出来,使用了如下代码,但打印预览里还是一片空白?何解?1.privateBitmapmemImage=null;//声明全局变量下面代码会用到的2.privatevoi ...
- c#endread怎么打印出来_C# 小票打印机 ESC命令行方式打印
private void btnPrinter_Click(object sender, EventArgs e) { #region ESC 热敏图像点阵像素点读取打印 //Bitmap bitma ...
- Socket 客户端判断服务器是否断开连接
// 首先,Socket类的Connected属性只表示最后一次I/O操作的状态,如果这之后[连接的另一方]断开了,它还一直返回true, 除非你再通过socket来发送数据.所以通过个属性来判断是 ...
- c#endread怎么打印出来_NetworkStream.EndRead(IAsyncResult) 方法 (System.Net.Sockets) | Microsoft Docs...
处理异步读取的结束.Handles the end of an asynchronous read. public: override int EndRead(IAsyncResult ^ async ...
- java与c++ socket通信_C++ socket 客户端与JAVA socket 服务端通信汗血宝马
C++ socket 连接java 服务如果发送 packHeadLength+消息体 java 客户端代码 Socket socket = new Socket("127.0.0.1&qu ...
- android连接不上socket,关于socket通信的android与pc端连接,为什么我定义的socket是为空的,连接不上pc端...
服务器端代码: package mytable; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; im ...
- 换行显示print_r($arr);打印结果显示:Array( [0] = 百度 [1] = 阿里)
数组array是非常重要的数据类型.相对于其他的数据类型,它更像是一种结构,而这种结果构可以存储一系列数值.数组能够在单一变量名中存储许多值,并且能够通过引用下标号来访问某个值. 在 PHP 中,有三 ...
最新文章
- SpringMVC权限管理
- 第2题——DNA片段
- HDFS分布式文件系统理论知识
- springboot数据源不正确_Spring MVC 到 Spring Boot 的简化之路
- 数据库杂谈(四)——关系演算和E-R数据模型
- springboot 做表白墙_经贸吐槽墙 |2020.12.13
- linux测试接口配置,linux can 总线socket接口测试使用
- SpringBoot整合RabbitMQ之Fanout Exchange扇形(广播式)交换机(学习总结)
- 凤凰刷机软件连接不上手机的解决办…
- 软件测试报告模板什么样的?
- 【python实战】爬取起点中文网自制小说阅读器
- CAD坐标系(UCS)
- 十大IT危机处理高手
- 计算机如何认硬盘,电脑怎样识别大容量的硬盘?
- redis源码阅读三-终于把主线任务执行搞明白了
- 新东方托福词汇(List 36 ~ List 40)
- Android viewpager+fragment实现无限滚动,左右有前/后一页的部分,并fragment显示的内容是activity传过去的数据
- 有道科学计算机,网易有道超级计算器获App Store推荐 打造随身数学帮手
- 石家庄IT培训业转型要诀:出品,用户,服务
- ur机器人编程-创建程序
热门文章
- StackExchange.Redis通用封装类分享(转)
- 在64位windows下使用instsrv.exe和srvany.exe创建windows服务
- bct对oracle影响,Oracle 优化篇+Rman增量备份优化之BCT(块变更追踪)
- 小白学习机器学习---第六章:SVM算法原理(1)
- 警告:Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA(亲测)
- elasticsearch 索引存储深入详解
- 获取MySQL数据库表结构的信息(字段名,字段类型,注释等)
- linux usb 触摸屏驱动,请教大家一个linux下的usb触摸屏驱动的问题
- HTML与XHTML的区别
- 闲置硬盘自制nas私有云_闲置U盘不用扔,教你一招变云盘,随时随地备份数据、访问私有云...