4.1 基本函数
#include <sys/socket.h>
int socket(int family, int type, int protocol);
![UNP——Chapter 4:基本TCP套接字编程 UNP——Chapter 4:基本TCP套接字编程](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0RvdkwybHRaeTVpYkc5bkxtTnpaRzR1Ym1WMEx6SXdNVFl3T1RJeE1UY3dPVE0xTXpFNQ%3D%3D.jpg?w=700&webp=1)
![UNP——Chapter 4:基本TCP套接字编程 UNP——Chapter 4:基本TCP套接字编程](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0RvdkwybHRaeTVpYkc5bkxtTnpaRzR1Ym1WMEx6SXdNVFl3T1RJeE1UY3hNREF6TXprMw%3D%3D.jpg?w=700&webp=1)
![UNP——Chapter 4:基本TCP套接字编程 UNP——Chapter 4:基本TCP套接字编程](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0RvdkwybHRaeTVpYkc5bkxtTnpaRzR1Ym1WMEx6SXdNVFl3T1RJeE1UY3hNRE0wTmpNeA%3D%3D.jpg?w=700&webp=1)
#include <sys/socket.h>
int connect(int sockfd, const struct sockaddr *servaddr, socklen_t addrlen);
#include <sys/socket.h>
int bind(int sockfd, const struct sockaddr *myaddr, socklen_t addrlen);
#include <sys/socket.h>
int listen(int sockfd, int backlog);
#include <sys/socket.h>
int accept(int sockfd, const struct sockaddr *cliaddr, socklen_t *addrlen);
#include <unistd.h>
pid_t fork(void);
- getsockname和getpeername函数
#include <sys/socket.h>
int getsockname(int sockfd, const struct sockaddr *localaddr, socklen_t *addrlen);
int getpeername(int sockfd, const struct sockaddr *peeraddr, socklen_t *addrlen);