我对套接字编程很陌生,我想制作一个支持windows和unix系统的跨平台应用程序(C++)。
Windows上websocket传输的默认设置似乎是windows套接字,而在unix系统上则是BSD套接字。那么,如何在预处理器时间决定哪些套接字是可用的,这样我才能抽象出这个层呢?是否有一个我可以检查的定义,它也对应于这些特性的可用性?
我考虑过检查_WIN32和__unix__定义,但它们是平台定义,我不确定它们是否一定符合特性的可用性。我想Windows系统的情况是非常好的,但是我听说一些unix系统只会提供部分BSD套接字遵从性,所以这种检查可能会误导人吗?
发布于 2022-11-09 06:55:22
我是套接字编程的新手,我想制作一个跨平台应用程序(C++),它同时支持windows和unix系统。
有许多跨平台的套接字库已经可用。
-- websocket传输的默认设置--似乎是Windows套接字,而在unix系统上,它是BSD套接字。
Winsock包括与BSD兼容的套接字函数,这些函数大多与其他平台兼容API(有一些区别)。您需要处理的最大区别是需要在每个平台上进行#include的头文件。
是否有一个我可以检查的定义,它也对应于这些特性的可用性?
不,没有。
,我考虑过检查
_WIN32和__unix__定义,但它们是平台定义,我不确定它们是否一定符合特性的可用性。
这基本上是您需要做的(以及其他跨平台库所做的)。
https://stackoverflow.com/questions/74370729
复制相似问题