无法在VS2008中打开套接字程序头

时间:2013-07-08 06:42:39

标签: c++ c sockets visual-studio-2008 network-programming

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

这些头文件可以在Linux中运行但在visual studio 2008中编译错误说无法打开头文件。这些是与socket程序相关的头文件。 (我无法从网络搜索中获得任何正确的结果)

问题:

请告诉我这些标题包含的任何dll或任何其他等效标题可用吗?

提前致谢。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

根据您要实现的目标,您可能希望使用包装OS特定部件的库并提供便携式界面。有几个或多或少的便携式网络库,其中最着名的可能是Boost.Asio