Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。前面的章节中介绍了Socket的定义,实例,与http的区别,通信,长连接等等技术知识,这里我们来谈谈使用Socket会经常遇到的一些连接错误。
常见的Socket错误如下:
1、出现网络联机错误Socket error #11001
表示您的计算机无法连上服务器,请检查您的Proxy设定以及Proxy相关账号,或暂时取消您防毒软件的「个人防火墙」。
2、出现网络联机错误Socket error #11004
应该是网络联机状态问题,请用户检查网络联机是否正常。
3、出现网络联机错误Socket error #10060 Connection Timed Out
表示您与服务器发生联机逾时错误,请检查您的Proxy相关设定,以及Proxy Server是否已将SSL 443 port打开。
4、出现网络联机错误Socket error #10061
表示服务器忙碌中无法与您建立联机,请稍后再试。
5、出现网络联机错误Socket error #10022
请您上网更新Windows操作系统组件。Windows NT version 4.0的用户请下载安装Service Pack 5(含)以上。
6、出现Internal Server Error
主机忙碌中,请您稍后再试。
7、上传时出现Socket error #10022 Invalid argument.
请上网更新Windows操作系统组件(windows update)。Windows NT version 4.0的用户请下载安装Service Pack 5(含)以上。
8、上传时出现socket error #10054 Connection reset by peer
原因为连接被防火樯或proxy中断"或因为您有安装ip分享器请将ip分享器先拿掉,直接将计算机接adsl的线路后重新上传。
9、上传时出现socket error #10057 Connection reset by peer
是windows的系统文件,与文件传输又关系. 所以你删除了,不能提交命令,网页不能下载,就不能上网
EPIPE和ECONNRESET区别
EPIPE和ECONNRESET是网络编程实践中很常见的错误。二者都是出现send调用出错的时候,可它们有什么区别呢? 简而言之,二者的区别是本端的socket是否收到过对方socket发出的FIN。
其代码如下:
static void tcp_reset(struct sock *sk) { switch (sk->sk_state) { case TCP_SYN_SENT: sk->sk_err = ECONNREFUSED; break; case TCP_CLOSE_WAIT: sk->sk_err = EPIPE; break; case TCP_CLOSE: return; default: sk->sk_err = ECONNRESET; } smp_wmb(); if (!sock_flag(sk, SOCK_DEAD)) sk->sk_error_report(sk); tcp_done(sk); }
【相关教程推荐】
Atas ialah kandungan terperinci 常见的socket error错误总结. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!