我目前正在开发一个 UDP 应用程序,该应用程序允许两个用户使用 winsock 库相互交谈。目前,当我的程序运行时,它首先将 sockaddress 保存到向量中,然后当用户发送消息时,它将地址与向量中的第一个地址进行比较。当我调试并比较正在比较的值时,它们完全相同,但我的 if 语句转到 else (它认为地址不相等)
这是我的代码:
#include <WinSock2.h>
sockaddr clientAddress;
recvfrom( hSocket, msg, MAXLINE, 0, &clientAddress, &cbClientAddress );
myVector.pushback(clientAddress);
if (&clientAddresses[0] == &clientAddress)
{
//is the same address
}
else
{
//not the same address
}
我还尝试在and.sa_data
之后使用更具体clientAddress[0]
&clientAddress.
谢谢