常见接口
- 头文件 #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相应的服务器