ошибка C2065: 'socklen_t': необъявленный идентификатор - PullRequest
1 голос
/ 15 декабря 2010

Вся ошибка:

Error   1   error C2065: 'socklen_t' : undeclared identifier    c:\users\richard\documents\visual studio 2010\projects\server\server\server.cpp 41  1   Server

Это проблемная строка:

int iRcvdBytes=recvfrom(iSockFd, buff, 1024000, 0, (struct sockaddr*)&cliAddr, (socklen_t*)&cliAddrLen);

У меня есть следующие заголовки:

#include <winsock2.h>
#include <windows.h>

#include <direct.h>
#include <stdlib.h>
#include <stdio.h>

#include <iostream>
#include <fstream>
#include <sstream>
#include <string>

#include <cv.h>
#include <cxcore.h>
#include <highgui.h>

Я также добавил WS2_32.lib к компоновщику в Visual Studio 2010.

Что еще может вызвать эту проблему? Я просто пытаюсь переписать мою простую программу UDP для работы под Windows.

Ответы [ 2 ]

14 голосов
/ 15 декабря 2010

Тип socklen_t определяется внутри WS2tcpip.h в Windows.Это не транзитивно включено из winsock2.h (AFAICT).Вам нужно будет вручную включить WS2tcpip.h, чтобы использовать тип socklen_t.

1 голос
/ 15 декабря 2010

Visual Studio не может найти тип socklen_t.MSDN говорит, что эта функция принимает int * в качестве последнего параметра, поэтому приведите к нему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...