我用C在Linux机器上使用套接字制作了一个服务器,它运行得很好,但是当我尝试使用visual studio在windows机器上运行它时,我得到了一个错误:
致命错误C1083:无法打开包含文件:'sys/socket.h':没有这样的文件或目录
ide告诉我找不到这个头文件。
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
发布于 2021-05-27 17:06:38
对于Windows,您必须使用winsock.h
或winsock2.h
和sys/types.h
。忘掉unistd.h
,arpa/inet.h
和netinet.h
吧。根据平台使用条件编译来包含正确的标头。
此外,要在Windows下使用套接字,应用程序必须首先调用WSAStartup
。
Windows和Linux之间的调用大部分是相同的。但大多数性能都需要避免select() (它有效)并使用Windows函数。见文档。
发布于 2022-09-15 07:50:29
您应该使用标头
·winsock2.h
·ws2tcpip.h
·ws2spi.h
此外,在导入任何这些功能之前,您应该将_WIN32_WINNT
定义为0x501
,以包括Windows或更高版本的所有功能,以及Windows7或更高版本的特性的0x601
https://stackoverflow.com/questions/67726142
复制相似问题