我在使用getsockname
函数时遇到问题。我有这个代码:
struct sockaddr sa;
int sa_len;
sa_len = sizeof(sa);
if (getsockname(socketfd, &sa, &sa_len) != SOCKET_ERROR)
{
///
}
else
{
int error = WSAGetLastError();
//error here WSAEFAULT always
}
如您所见,我在使用getsockname 函数时总是出错。错误 - WSAEFAULT
。但为什么?结构和结构大小是对的,为什么会这样?
WSAEFAULT 描述:
name 或 namelen 参数不是用户地址空间的有效部分,或者 namelen 参数太小。
ps 应用程序是 64 位的
谢谢!