zoukankan      html  css  js  c++  java
  • connect函数

    TCP客户用connect函数来建立与TCP服务器的连接

    int connect (int sockfd, const sockaddr * servaddr, socklen_t addrlen);

    sockfd是由socket函数返回的套接字描述符

    servaddr指向套接字地址结构的指针

    addrlen指向该结构的大小的指针

    客户在调用函数connect 之前不必非要调用bind函数,因为如果需要的话,内核会确定源IP地址,并选择一个临时端口作为源端口

    如果是TCP套接字,调用connect函数将会激发TCP的三次握手过程,而且仅仅在连接建立成功或出错时才返回,出错情况如下:

    1)若TCP客户没有收到SYN分节的响应,则返回ETIMEOUT错误

    2)若对客户的SYN的响应是RST(表示复位),则表明该服务器主机在我们指定的端口上没有进程在等待与之连接

    这是一个硬错误,客户一接收到RST就马上返回ECONNREFUSED错误

    产生RST的三个条件:

    目的地为某端口的SYN到达,然而该端口上没有正在监听的服务器;

    TCP想要取消一个已有连接;

    TCP接受到一个根本不存在的链接上的分节。

    3)若客户发出的SYN在中间的某个路由器上引发一个"destination unreachable"(目的地址不可达)ICMP错误,则认为是一种软错误

    客户主机内核保存该消息,并按第一种情况中所述的时间间隔继续发送SYN,若在某个规定时间后仍然未收到相应,则把保存的消息(ICMP错误)作为EHOSTUNREACH或ENETUNREACH错误返回给进程

    ========================if i have some wrong, please give me a message, thx.========================
  • 相关阅读:
    iscroll在iphone浏览器上闪动的BUG
    Emmet (ZenCoding) 缩写语法
    jqmobi快速开始(翻译)
    前端资源站点
    DOM Storage全解析
    html5离线应用
    XML的浏览器解析方案,正在尝试 。
    用 JavaScript来判断浏览器的种类
    delphi7判断字符串的组成
    没想到手机发邮件要占用那么大的空间
  • 原文地址:https://www.cnblogs.com/ailx10/p/5349714.html
Copyright © 2011-2022 走看看