windows平台下:
頭文件:#include<ws2tcpip.h>
linux平台下:
下面兩個頭文件都有定義:
1)#include <sys/socket.h>
2)#include <unistd.h>
詳細定義:typedef int socklen_t;
翻譯:
任何完整的庫必須定義socklen_t和int相同的尺寸大小。
別的事情打破了BSD套接字層的填充。POSIX起初確實將
其定義為size_t。我已經向他們大聲訴說這件事情。定
義其為size_t類型是非常糟糕的,特別是size_t在64位
操作系統上,很少和int保持同樣的尺寸大小。例如,BSD
套接字接口只接受和int尺寸大小的值,不管如何,POSIX
組織最終想出一個辦法,創建socklen_t的類型,他們本不
該插手這個類型。但是曾經他們確實認為為它定義一個類型
是必須的,為了某些令人費解的理由。
參考:http://stackoverflow.com/questions/3531474/socklen-t-undeclared-when-compiling-c-code