如何在WinSock2中的DGRAM套接字上获取传入数据包的IP地址?

时间:2014-10-16 14:43:53

标签: c++ sockets winsock2

我正在使用WinSock和服务器做一些工作,我想获取客户端的IP地址向服务器发送信息包。我更喜欢使用UDP协议使用SOCK_DGRAM样式的套接字。由于我没有使用带有listen(),accept()和connect()的套接字,因此不能使用getpeername(),我想知道如何获取这些信息。一个简短的代码片段将不胜感激。此外,我现在只在局域网上的服务器上进行通信,但最终还是需要进一步移动。

编辑: 就代码而言,我不确定该放什么。

我有一个socket sock_serv

它初始化如下:

sock_serv = socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);

在设置超时后,我稍后会进行一些recv()。我已确认超时有效,我可以从recv获取数据,但不知道如何获取发件人。

1 个答案:

答案 0 :(得分:1)

使用recvfrom()。它有一个输出struct sockaddr参数。请参阅MSDN