我有一个服务器正在侦听端口
该请求从我的本地客户端发送到本地pc上运行的服务器。
以下是我的代码片断为什么我从recvfrom()获得远程IP地址0.0.0.0?
remote_len = sizeof(remote_addr);
if ((bytes=recvfrom(sockfd, buf, MAXBUFLEN , 0,
(struct sockaddr *)&remote_addr, &remote_len)) <= 0) {
exit(1);
}
printf("remote ip = %s\n",inet_ntoa(remote_addr.sin_addr));
当我打印的IP我得到0.0.0.0?
这不是我想要打印的远程IP地址吗?
编辑:它是一个TCP套接字,我成功地收到了缓冲区。
'recvfrom'返回什么值?它是否成功?什么类型的套接字?它连接了吗? etc ... –
是的,它成功了。它是一个TCP套接字 – SPB
remote_len的值是什么?您可能正在获取IPv6回送地址。 –