• 套接字


    套接字

    一、定义

    int socket(int af,int type,int protocol); 

    解析:af:地址家族,一般使用AF_INET,代表的是IPv4

       type:套接字的数据处理类型,主要使用两种,SOCK_DGRAM和SOCK_STREAM,分别是UDP和TCP。

       protocol:根据第一参数和第二个参数确定,确定支持哪种协议,一般设置为0。

    二、关闭

    int close(int d);

    一般关闭使用close函数,关闭指定ID的套接字。

    int shutdown(int socket,int direction);

    解析:socket:套接字ID,

       direction:可以设置为0,1,2,分别对应着SHUT_RD,SHUT_WR,SHUT_RDWR。

    三、有关套接字的结构体

    struct sockaddr{

      u_short sa_family;  //Internet的地址家族

      char sa_data[14];

    }

    解析:sockaddr:由两个字节的地址家族和包含IP地址和端口号的14个字节的地址构成。

    struct in_addr{

      u_long s_addr;

    }

    struct sockaddr_in{

      short   sin_family;

      u_short sin_port;

      struct  in_addr sin_addr;

      char   sin_zero[8];

    }

    解析:sin_family:作为地址家族,相当于socket函数中个的AF_INET,

       sin_port:16比特的端口号,

       sin_addr:32比特的IP地址

       sin_zero:为了与struct sockaddr 长度保持一致,设置的填充变量。

    四、connect

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

    解析:sockfd:创建的套接字ID

      server_addr:前面所述的sockaddr结构,指定数据发送的目的地,也就是服务器的地址。connect是主动连接的一方调用的,被动的一方调用的是listen和accept。

      addrlen:server_addr结构体的长度。

  • 相关阅读:
    壳的编写(1)-- 简介与搭建框架
    Writing Your Own Packer
    中断门
    记一次:Windows的Socket编程学习和分析过程
    封装调用包含界面的MFC dll
    编译vtk8.1.1 + 在vs2017中配置开发环境
    迁移通知
    基于CAN总线的汽车诊断协议UDS(上位机开发驱动篇)
    基于CAN总线的汽车诊断协议UDS(ECU底层模块移植开发)
    浅谈jQuery,老司机带你jQuery入门到精通
  • 原文地址:https://www.cnblogs.com/socks/p/11882991.html
Copyright © 2020-2023  润新知