我在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.h
或winsock2.h
和sys/types.h
。忘记unistd.h
、arpa/inet.h
和netinet.h
。根据平台,使用条件编译来包含正确的标头。
此外,要在Windows下使用套接字,应用程序必须首先调用WSAStartup
。
Windows和Linux之间的大多数调用都是相同的。但大多数性能都需要避免select(((有效(并使用Windows函数。请参阅文档。
您应该使用标题
•winsock2.h
•ws2tcpip.h
•ws2spi.h
此外,在导入其中任何一个之前,您应该定义_WIN32_WINNT
至0x501
包括Windows XP或更高版本的所有功能,0x601
包括Windows 7或更高版的功能(如果未在包含的任何标头中定义(