Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在WinSock2中的DGRAM套接字上获取传入数据包的IP地址?_C++_Sockets_Winsock2 - Fatal编程技术网

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

C++ 如何在WinSock2中的DGRAM套接字上获取传入数据包的IP地址?,c++,sockets,winsock2,C++,Sockets,Winsock2,我正在使用WinSock和服务器进行一些工作,我希望获得向服务器发送信息包的客户端的IP地址。我更喜欢使用SOCK_DGRAM样式的套接字,使用UDP协议。由于我没有将套接字与listen()、accept()和connect()一起使用,因此无法使用getpeername(),因此我想知道如何获取此信息。一个简短的代码片段将不胜感激。另外,现在我只在局域网上的服务器上进行通信,但最终需要移动到更远的地方 编辑: 就代码而言,我不确定该放什么 我有一个插座插座 它是这样初始化的: sock_se

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

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

我有一个插座插座

它是这样初始化的:

sock_serv=套接字(AF_INET、sock_DGRAM、IPPROTO_UDP)


设置超时后,我稍后会进行一些录制。我已确认超时有效,我可以从recv获取数据,但不知道如何获取发送方。

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

非常感谢,这应该可以用。我已经在这上面呆了一段时间了。