Я пытаюсь создать UDP-клиент на компьютере под управлением Windows, используя C ++ (см. Код ниже).
Проблема в том, что проект, на котором я обременен, также содержит ссылки на библиотеку <functional>
, которая переопределяетbind
функция с парой шаблонных функций, и VS не знает, какую версию bind()
я хочу использовать.
Как мне сообщить компилятору, что я хочу использовать версию Winsockbind()
функция?
SOCKET s = INVALID_SOCKET;
if ((s = socket(AF_INET, SOCK_DGRAM, 0)) == INVALID_SOCKET)
{
WSACleanup();
return;
}
sockaddr_in addr_recv;
memset((char *)&addr_recv, 0, sizeof(addr_recv));
addr_recv.sin_family = AF_INET;
addr_recv.sin_port = htons(0);
addr_recv.sin_addr.s_addr = htonl(INADDR_ANY);
int server_addr_len = sizeof(addr_recv);
// compiler doesn't know which bind I mean.
int iResult = bind(s, (SOCKADDR *)&addr_recv, server_addr_len);
if (iResult == SOCKET_ERROR)
{
closesocket(s);
WSACleanup();
return;
}