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.========================
  • 相关阅读:
    谁是你随时可以说话的人
    我们在帝都这么拼,为的是什么?
    CVE-2016-4758: UXSS in Safari's showModalDialog
    JSON-SCHEMA
    JS城市data
    linux(centos )mongodb install
    python pip install
    基于chrome内核的UXSS
    Trying to hack Redis via HTTP requests
    Apache Solr 访问权限控制
  • 原文地址:https://www.cnblogs.com/ailx10/p/5349714.html
Copyright © 2011-2022 走看看