Я пытаюсь создать UDP-клиент на компьютере с Windows, используя C ++ (см. Код ниже).
Проблема в том, что проект меня обременен также ссылками на <functional>
библиотека, которая переопределяет bind
функция с парой шаблонных функций, и VS не знает, какая версия bind()
Я хочу использовать.
Как мне сообщить компилятору, что я хочу использовать версию Winsock bind()
функционировать?
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;
}
Задача ещё не решена.
Других решений пока нет …