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
    
  • 相关阅读:
    Thymeleaf 基本表达式
    html中<radio>单选按钮控件标签用法解析及如何设置默认选中
    <%@ page contentType="text/html; charset=utf-8" language="java"%>每一个字符的含义
    El表达式的关系运算符
    Centos7.6安装Docker安装
    linux必须熟练掌握的基础命令
    CentOS7.x编译安装zabbix4.0
    编译装php7.2 && nginx-1.14
    CentOS7.x安装MySQL5.7.25
    CentOS7.x安装kickstart
  • 原文地址:https://www.cnblogs.com/biaopei/p/7730594.html
Copyright © 2011-2022 走看看