记一则Unix平台C代码转移到windows,编译错误:error: unknown type name ‘socklen_t‘; did you mean ‘_locale_t‘?的解决方法

错误如下图:

 

解决方法有三种:

第一种:

引用 #include<ws2tcpip.h>

#include<ws2tcpip.h>  //my add  fix:error: unknown type name 'socklen_t'; did you mean '_locale_t

 第二种:

增加宏定义,因为本身Unix中的socklen_t实际就是一个Int:

数据类型"socklen_t"和int应该具有相同的长度.否则就会破坏 BSD套接字层的填充.POSIX开始的时候用的是size_t

#define socklen_t int

第三种:

直接改成int

最优选择:第一种


版权声明:本文为wh445306原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。