如何在Windows上使用sys/socket.h



我在Linux机器上使用socket用C制作了一个服务器,它运行得很好,但当我试图使用visual studio在windows机器上运行它时,我遇到了一个错误:

致命错误C1083:无法打开包含文件:"sys/socket.h":没有这样的文件文件或目录

ide告诉我找不到此头文件。

#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>

对于Windows,必须使用winsock.hwinsock2.hsys/types.h。忘记unistd.harpa/inet.hnetinet.h。根据平台,使用条件编译来包含正确的标头。

此外,要在Windows下使用套接字,应用程序必须首先调用WSAStartup

Windows和Linux之间的大多数调用都是相同的。但大多数性能都需要避免select(((有效(并使用Windows函数。请参阅文档。

您应该使用标题

winsock2.h

ws2tcpip.h

ws2spi.h

此外,在导入其中任何一个之前,您应该定义_WIN32_WINNT0x501包括Windows XP或更高版本的所有功能,0x601包括Windows 7或更高版的功能(如果未在包含的任何标头中定义(

最新更新