0

idevs.h、netinet/in_systm.h、netinet/ip.h、netinet/tcp.h openssl/ssl.h sys/socket.h

这些头文件可以在 Linux 中工作,但在 Visual Studio 2008 中编译错误说无法打开头文件。这些是与套接字程序相关的头文件。(我无法从网络搜索中获得任何正确的结果)

问题:

请让我知道我为这些标头包含的任何 dll 或任何其他等效标头可用?

提前致谢。

4

2 回答 2

1

在 windows 环境中,您需要包含 windows 特定的标题,例如winsock.h和其他 ( http://msdn.microsoft.com/en-us/library/windows/desktop/ms738545(v=vs.85).aspx )。#ifdef在为不同平台进行构建时,您需要使用语句在标头之间切换。

没有人承诺 Windows 实现的套接字概念与 Unix 的实现 100% 相同。这些实现有很多共同点,但也存在差异。

于 2013-07-08T07:13:06.447 回答
0

套接字不是 C++ 标准的一部分,在 Linux 和 Windows 中以不同的方式实现。这意味着,两个操作系统中的本地套接字库都不同,并且 Windows 的套接字 API 有其他头文件,而不是 Linux。因此,您不仅需要包含其他标头,还可能需要使用其他功能。

根据您想要实现的目标,您可能希望使用一个包含操作系统特定部分并提供可移植接口的库。有几个或多或少的可移植网络库,其中最著名的可能是 Boost.Asio

于 2013-07-08T07:21:21.513 回答