错误C2065:'socklen_t':未声明的标识符

Ric*_*nop 1 c++ visual-c++ socklen-t

整个错误是:

Error   1   error C2065: 'socklen_t' : undeclared identifier    c:\users\richard\documents\visual studio 2010\projects\server\server\server.cpp 41  1   Server
Run Code Online (Sandbox Code Playgroud)

这是有问题的一行:

int iRcvdBytes=recvfrom(iSockFd, buff, 1024000, 0, (struct sockaddr*)&cliAddr, (socklen_t*)&cliAddrLen);
Run Code Online (Sandbox Code Playgroud)

我有这些标题包括:

#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>
Run Code Online (Sandbox Code Playgroud)

我还将WS2_32.lib添加到Visual Studio 2010中的链接器.

还有什么可能导致这个问题?我只是想重写我的简单UDP程序在Windows下工作.

Jar*_*Par 14

socklen_t类型在Windows中的WS2tcpip.h中定义.这不是来自winsock2.h(AFAICT)的传递.您需要手动包含WS2tcpip.h才能使用该socklen_t类型.