Linux 下TCP accept怎么使用
时间: 2024-05-15 11:18:07 浏览: 6
在 Linux 下,TCP accept 函数可以用于创建服务器端并监听客户端连接请求。具体用法如下:
1. 创建 socket
```
int listen_fd = socket(AF_INET, SOCK_STREAM, 0);
```
2. 绑定 IP 地址和端口号
```
struct sockaddr_in server_addr;
memset(&server_addr, 0, sizeof(server_addr));
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(8888);
server_addr.sin_addr.s_addr = htonl(INADDR_ANY);
bind(listen_fd, (struct sockaddr*)&server_addr, sizeof(server_addr));
```
3. 监听连接请求
```
listen(listen_fd, 10);
```
4. 接受客户端连接请求
```
struct sockaddr_in client_addr;
socklen_t client_len = sizeof(client_addr);
int client_fd = accept(listen_fd, (struct sockaddr*)&client_addr, &client_len);
```
需要注意的是,accept 函数会阻塞等待客户端连接请求,直到有客户端连接进来或者超时。成功接收连接请求后,会返回一个新的文件描述符 client_fd,用于后续的数据传输。同时,可以通过 sockaddr_in 结构体获取客户端的 IP 地址和端口号。