我在Linux下用C编写了一个简单的客户端服务器程序。我创建了UDP套接字。客户端使用
广播消息sendto(clientsock, buf, 100, 0, (struct sockaddr *)&to, sizeof (to));
服务器使用
接收广播的消息recvfrom(serversock, buf, 100, 0, (struct sockaddr *)&rcv,&size);
服务器已成功接收消息。在服务器端,我需要找到收到的消息的源IP地址。我怎么能这样做?
答案 0 :(得分:5)
用于调用 -
recvfrom(s, buf, BUFLEN, 0, &si_other, &slen)
使用
printf("Received packet from %s:%d\nData: %s\n\n", inet_ntoa(si_other.sin_addr), ntohs(si_other.sin_port), buf);