PHP课程限时特价
PHP一对一教学
PHP全栈开发

常见的socket error错误总结

伊谢尔伦   2017-05-24 11:34   19845浏览 原创

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);
}

【相关教程推荐】

1. 《php.cn独孤九贱(4)-php视频教程

2.   php编程从入门到精通全套教程

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。