C# Socket 您的主机中的软件中止了一个已建立的连接 An established connection was aborted by the software in your host machine

 

http://tieba.baidu.com/p/3223234493

问题:

服务端在接收客户端数据的时候,抛了个异常出来:
System.Net.Sockets.SocketException: 您的主机中的软件中止了一个已建立的连接。   //An established connection was aborted by the software in your host machine
在 System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 size, SocketFlags socketFlags)
在 NetWorkingSerivce.ReceiveThread.ReceiveData(Object userstart) 位置 f:\个人项目\NetWorkingSerivce\NetWorkingSerivce\ReceiveThread.cs:行号 53

 

解答:

玩几天我刚编了一个局域网内多线程文件传输的程序,是winform的。也遇到过你的问题。

如果你的服务器端(文件接收方)Receive数据时,关闭了客户端(文件发送端)就会强制关闭连接,就会出现上面的错误提示。

建议你在接收完数据后退出死循环不要让Receive函数阻塞住,关闭客户端(文件发送端)前建议发送一个消息告诉服务器端(文件接收方)“我要断开连接了”,然后两方都关闭连接close。

 

 

服务端在接收客户端数据的时候,得到了ConnectionAborted的异常

而服务端在遇到这个异常的时候,会主动关闭和客户端的连接

之后,服务端再使用这个socket向外发送数据的时候,就会出现“您的主机中的软件中止了一个已建立的连接”

 

 

this socket connection was aborted 

也可能是序列化错误导致的问题,类的某个属性上需要DataMember这个Attribute

 

作者:Chuck Lu    GitHub    
posted @   ChuckLu  阅读(35665)  评论(2编辑  收藏  举报
编辑推荐:
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
阅读排行:
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
历史上的今天:
2015-04-22 DataGridView中的单元格提示错误信息
点击右上角即可分享
微信分享提示