在"C"中的套接字编程中,如何找到连接到服务器的客户端的IP地址?

sid*_*rth 1 c sockets

在"C"中的套接字编程中,如何找到连接到服务器的客户端的IP地址?服务器如何获取客户端的IP地址?

cni*_*tar 7

您没有提到任何API,但accept函数/系统调用通常接受一个sockaddr *参数,它存储对等体的地址.

int accept(int socket, struct sockaddr *restrict address, /* <---- */
       socklen_t *restrict address_len);
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用以后getpeername检索相同的地址.

int getpeername(int socket, struct sockaddr *restrict address,
       socklen_t *restrict address_len);
Run Code Online (Sandbox Code Playgroud)

如果你碰巧使用winapi:accept, getpeername.