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出现“无法打开网站”的错误消息