SOCKET错误
来源:互联网 发布:氪喷淘宝 编辑:程序博客网 时间:2024/05/22 13:12
贴2段能稳定重现10053的代码,下面是客户端:
这个是服务器的:10053里说的software在我的例子中指的就是那个send函数吗,是send函数执行的时候,发现对方的套接字已经关闭了,所以它把己方的套接字也关掉了吗,然后导致后续的recv报错10053?
出现10053的原因是因为在你执行这次send的时候对端已经执行过closesocket了,而发送的数据还是被成功的推入了发送缓冲区中,因此返回了0,此时你可能还没得到FIN消息,而紧接着recv这边就得到了对端关闭socket的FIN消息,因此此时需要放弃发送缓冲中的数据,异常终止连接,所以得到了
10053错误:您的主机中的软件中止了一个已建立的连接。
而为什么又能得到10054的错误号,原因应该在于你设置了SO_LINGER了,一但设置了它,则有一个等待时间,在该等待时间内可以处理发送缓冲区的数据,一但超时或者发送缓冲都被发送完并被确认,则服务端有可能发送RST消息而不是FIN,此时就应该得到重置错误,也就是10054。
不同的系统对SO_LINGER的实现方式不一样,得到的结果也不一样,不知道按我这样解释是否对你有帮助。如果我有理解错误,欢迎大家指正。
socket error- Software caused connection abort. Error code : 10053
Action.c(16): Error : socket0 - Software caused connection abort. Error code : 10053.
10053这个错误,产生于socket通讯过程中,通常是这么回事:
正常的C/S通讯过程是:
Server Listen;
Client Connect;
Server Accept;
Client Send;
Server Recv;
Client Close;
Server Close
如果Client端不主动关闭连接而直接退出,则Server端的服务线程会引发一个10053错误(这种错误通常影响不太大), 而如果通讯过程中Server首先主动关闭连接,则Client端也会引发一个10053错误
网络不好的时候的情况通常是指后者,Client以为Server关了(实际是网络断了), 所以就大叫10053
- Socket错误
- Socket错误
- SOCKET错误
- socket错误
- SOCKET错误
- Socket 错误
- Socket 错误描述
- Socket 错误一览表
- socket数据包接收错误
- Java Socket 错误解决
- 常见SOCKET错误参数
- SOCKET错误代码表
- socket error 10061错误
- SOCKET错误代码表
- SOCKET错误代码表
- SOCKET错误代码表
- MySql socket 错误解决办法
- Java Socket 错误解决
- UESTC-1006 最长上升子序列(最长递减子序列做法+贪心策略)
- java设计模式之一:简单工厂模式
- 周末复习html,最基础的知识,记下自己不太记得的东西
- C++ 多线程中互斥信号量的使用
- vb.net 教程 4-2 目录操作 DirectoryInfo 1
- SOCKET错误
- 随手记录——MySQL数据库设置唯一性约束遇到的问题
- I/O多路转接之select
- void及void指针含义的深刻解析
- 2017.07.06-0709 没写日记
- 解决问题:Could not find method android() for arguments
- 代码质量,代码规范,可维护性,可拓展性,高性能
- 共享单车上的智能锁,做出来有多难?
- [CLI]sync