网络编程 Socket套接字

常见接口

  • 头文件 #include<netinet/in.h> #include<arpa/inet.h>
  • int socket(int domain,int type, int protocol);
    • 功能:创建socket文件描述符(TCP/UDP 客户端+服务器)
    • 参数
      • domain AF_INET 网络 AN_UNIX 本地
      • type 操作种类 SOCK_STREAM 流式数据通信(TCP)
        SOCK_DGRAM 无连接不可靠数据通信(用户数据报)
      • protocol 用哪种协议 默认为0 操作系统自动判断
    • 返回值 如果成功 返回一个文件描述符 失败返回-1 并且错误码被设置
  • int bind(int socket, const struct sockaddr* address, socklen_t address_len);
    • 功能:绑定端口号(TCP/UDP,服务器)
    • 参数:
      • socket 套接字文件描述符
      • addr sockadd_in 或者 sockadd_un
      • len addr的大小
    • 返回值 成功返回0 失败返回-1 错误码被设置
  • int listen(int socket, int backlog);
    • 功能:开始监听 socket (TCP,服务器) 当处于listen状态时 意味着可以让客户端来连接了
    • 参数:socket 套接字对应的文件描述符 backlong 整数不要太大 一般16 32
    • 返回值 成功返回0 失败返回-1 错误码被设置
  • int accept(int socket, struct sockaddr* address, socklen_t* address_len);
    • 功能:获取连接 接受请求(TCP,服务器)
    • 返回值:如果成功 返回一个整数 一个文件描述符 失败-1被返回 错误码被设置
  • int connect(int sockfd, const struct sockaddr*addr, socklen_t addrlen);
    • 功能:与服务器建立连接(TCP,客户端)
    • 参数
    • 返回值 成功返回0 失败返回-1 错误码被设置
  • 头文件 #include<sys/types.h> #include<sys/socket.h>
  • ssize_t recvfrom(int sockfd,void* buf,size_t len,int flags, struct sockaddrsrc_addr,socklen_t addrlen);
    • 功能 接收用户发来的数据
    • 参数
      • sockfd 对应的Socket文件描述符
      • buf 存储数据的用户级缓冲区
      • len 缓冲区的大小
      • flags 读取方式 默认设置0 阻塞式读取
      • src_addr 发出者的socket信息(发出者的记录ip与port)
      • addrlen addr的大小
    • 返回值 传来数据的大小
  • ssize_t sendto(int socket, const void* buf,size_t len, int flags, const struct sockaddr*dest_addr, socklen_t addrlen);
    • 参数
      • sockfd 对应socket文件描述符
      • buf 发送数据所在的缓冲区
      • len buf的大小
      • flags 发送方式 一般设置为0 阻塞调用
      • dest_addr 目的进程的socket信息
      • addrlen addr的大小
    • 返回值 实际发送了多少字节
  • 头文件 #include<unistd.h>
  • ssize_t read(int fd,void* buf, size_t count)
    • 功能:读取对应文件的信息
    • 参数:fd 文件描述符 buf 指向内容的指针 count 大小
    • 返回值:成功 返回 读取的大小 否则返回-1 错误码被设置 读到结尾返回0 在套接字意味着对方把连接关闭了

命令

netstat -nupa (n 尽量数字化显示 u显示UDP协议的服务器 p把进程也显示出来 a所有的) 即 显示nupa相应的服务器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值