zoukankan      html  css  js  c++  java
  • linux网络编程概念(一)

    AF表示地址族(address family)
    PF表示协议族(protocol family)
    domain参数
    AF_UNIX 内核中通信 sockaddr_un
    AF_INET 通过ipv4 sockaddr_in
    AF_INET6 通过ipv6 sockaddr_in6
    socket分为两种类型,一种是流(TCP),一种是数据报(UDP)
    其中流是面向链接的可靠的但是不支持保留消息边界,数据报不是面向链接也不可看的但是可以保留消息边界。

    #include<sys/socket.h>
    //创建一个socket
    //type参数指定socket类型(SOCK_STREAM或者SOCK_DGRAM),protocol参数指定为0即可,也可指定为非零值
    int socket(int domain,int type,int protocol);   //成功返回文件描述符,失败返回-1
    
    //将socket绑定到地址
    //sockfd就是socket的返回值,addr参数是一个指针,指向一个指定该socket绑定到的地址的结构,addrlen参数指定了地址结构的大小
    int bind(int sockfd,const struct sockaddr *addr,socklen_t addrlen);//成功返回0,失败-1
    
    //struct sockaddr结构的定义
        sa_family_t sa_family;
        char saz_data[14];
    //监听接入链接(被动)
    //backlog参数允许相知未决连接(客户端在服务器调用accept()之前调用connect())的数量,在这个限制之内的连接请求会立即成功
    int listen(int sockfd,int backlog); //成功返回0,失败-1
    
    //接受连接
    //该函数创建一个新socket,该新socket会与执行sonnect()的对等socket进行连接
    int accept(int sockfd,struct sockaddr *addr,socklen_t *addrlen);`   //成功返回文件描述符,失败返回-1
    
    //连接到对等socket
    int connect(int sockfd,const struct sockaddr *addr,socklen_t addrlen);//成功返回0,失败-1
    
    //连接终止
    close();
    ssize_t recvfrom(int sockfd,void *buffer,size_t length,int flags,struct sockaddr *src_addr,socklen_t *addrlen); //成功返回收到的字节数,失败-1
    ssize_t sendto(int sockfd,const void *buffer,size_t length,int flags,const struct sockaddr *dest_addr,socklen_t addrlen);   //成功返回发送的字节数,失败-1
    
  • 相关阅读:
    【BZOJ-3712】Fiolki LCA + 倍增 (idea题)
    【BZOJ-1941】Hide and Seek KD-Tree
    【BZOJ-2400】Spoj839Optimal Marks 最小割 + DFS
    【BZOJ-3709】Bohater 贪心
    【BZOJ-2342】双倍回文 Manacher + 并查集
    【BZOJ-3790】神奇项链 Manacher + 树状数组(奇葩) + DP
    【BZOJ-4568】幸运数字 树链剖分 + 线性基合并
    【BZOJ-4520】K远点对 KD-Tree + 堆
    【BZOJ-4127】Abs 树链剖分 + 线段树 (有趣的姿势)
    【BZOJ-2648&2716】SJY摆棋子&天使玩偶 KD Tree
  • 原文地址:https://www.cnblogs.com/biaopei/p/7730594.html
Copyright © 2011-2022 走看看