accept(m_sock_server,(struct sockaddr *)&m_addr_rmt,(socklen_t *)&sin_size);
时间: 2024-03-02 22:48:08 浏览: 69
网络编程socket之accept函数
`accept()` 函数是用于接受客户端连接请求的函数,其原型如下:
```c++
int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
```
- `sockfd`:表示要接受连接请求的套接字描述符,通常是监听 socket 的描述符。
- `addr`:指向一个 `sockaddr` 结构体的指针,用于存储客户端的地址信息。
- `addrlen`:表示 `addr` 结构体的大小,也是一个输入/输出参数,在调用 `accept()` 函数时用于指定 `addr` 结构体的大小,在函数返回时用于返回实际的 `addr` 结构体大小。
在你提供的代码中,`m_sock_server` 是一个监听 socket 的描述符,`m_addr_rmt` 是一个 `sockaddr` 结构体,用于存储客户端的地址信息,`sin_size` 是一个 `socklen_t` 类型的变量,用于存储 `m_addr_rmt` 结构体的大小,以便在函数调用中传递。`accept()` 函数将会阻塞当前线程,直到有客户端连接请求到达或者发生错误,如果有客户端连接请求到达,则会返回一个新的 socket 描述符,可以使用该描述符与客户端进行通信。如果发生错误,则返回 -1,并设置 `errno` 变量来指示错误类型。在成功调用 `accept()` 函数后,你可以使用返回的新 socket 描述符来与客户端进行通信,直到通信结束或发生错误为止。
阅读全文