VS2008无法打开socket程序头

Posted

技术标签:

【中文标题】VS2008无法打开socket程序头【英文标题】:Unable to open the socket program header in VS2008 【发布时间】:2013-07-08 06:42:39 【问题描述】:

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

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

问题:

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

提前致谢。

【问题讨论】:

MSDN has the details 以下都是正确有用的答案,感谢您的回复 【参考方案1】:

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

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

感谢您的宝贵回复

以上是关于VS2008无法打开socket程序头的主要内容,如果未能解决你的问题,请参考以下文章

vs2008 fatal error C1083: 无法打开包括文件:“iostream.h”: No such file or d

VS2008 编译时出现的错误:无法打开编译器中间文件。如何解决?

VC++2010出现C1083错误,无法打开stdib.h头文件怎么解决啊?

在Vista上使用VS 2008出现“无法打开网站”的错误消息

VS2008+SQL2005,用SqlDataSource控件新建数据库连接,无法打开数据源,说没有权限。

vs2008不能识别项目文件