我在使用 WSAAccept 函数时遇到了困难。我在 Windows Phone 平台上使用这个功能。MSDN 说 Windows Phone 支持此函数,但不幸的是,此函数永远不会返回 addr 参数指向的 sockaddr 结构的正确长度。即使我通过了ridicolouos 值,它在返回时也不会改变。
有没有人知道可以做些什么来解决这个问题以及这种行为的原因是什么?
我将不胜感激任何帮助。
编辑 这是该功能的使用方式:
sockaddr address;
int size = 28; //it is a max size of union in which it is stored address;
c=accept(s,&address,&size); //where s is the socket;
但因为 Windows Phone 平台不支持接受,所以我有一个包装器:
SOCKET accept(
SOCKET s,
struct sockaddr *addr,
int *addrlen
)
{
return c = WSAAccept(s, addr, addrlen, NULL, NULL);
}