idevs.h,netinet / in_systm.h,netinet / ip.h,netinet / tcp.h openssl / ssl.h sys / socket.h
这些头文件可以在Linux中运行但在visual studio 2008中编译错误说无法打开头文件。这些是与socket程序相关的头文件。 (我无法从网络搜索中获得任何正确的结果)
问题:
请告诉我这些标题包含的任何dll或任何其他等效标题可用吗?
提前致谢。
答案 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