如何显示客户端';使用c套接字程序在报告中显示的ip地址?
I服务器报告需要在服务器处理的报告中显示客户端ip地址,也就是说,我需要显示从哪个客户端发送报告。我该怎么做?有人能帮我吗?用这个:如何显示客户端';使用c套接字程序在报告中显示的ip地址?,c,C,I服务器报告需要在服务器处理的报告中显示客户端ip地址,也就是说,我需要显示从哪个客户端发送报告。我该怎么做?有人能帮我吗?用这个: char clntName[INET6_ADDRSTRLEN]; char portName[6]; if (getnameinfo(&client_address, sizeof client_address, clntName, sizeof(clntN
char clntName[INET6_ADDRSTRLEN];
char portName[6];
if (getnameinfo(&client_address,
sizeof client_address,
clntName,
sizeof(clntName),
NULL,
0,
NI_NUMERICHOST|NI_NUMERICSERV|NI_NUMERICSCOPE) == 0) {
printf("Client = %s/%s\n",clntName,portName);
} else {
printf("Unable to get address\n");
}
下面代码中的“remoteIp”字符数组将为您提供客户端的ip地址,您可以使用字符串函数打印该地址fd'是服务器端口的侦听套接字
struct sockaddr_in remoteAddr;
int size = sizeof(remoteAddr);
char remoteIp[10] = {0};
acceptFd = accept(fd, (struct sockaddr *)&remoteAddr, &size);
inet_ntop(AF_INET, &remoteAddr.sin_addr, remoteIp, INET_ADDRSTRLEN)
printf()+未初始化的portName字符数组可能会导致崩溃。或者至少printf()输出一些垃圾。