我正在制作一个简单的跨平台聊天程序。我使用wXWidgets作为GUI,这很好用,但我需要一种创建套接字和创建服务器客户端设置的方法。是否有一个API,例如在Windows上使用WinSock,在Linux上使用本地套接字和osx的?我不想使用boost作为解决方案,因为我将开源它,而不是每个人都想安装一个70+ MB的库。
Winsock与POSIX套接字API非常兼容,并且大多数标准函数在两者中都可用。头文件的名称不同,但简单的#ifdef
可以解决这个问题:
#ifdef _WIN32
#include <winsock2.h>
#else
#include <sys/socket.h>
#include <sys/types.h>
#include <netinet/in.h>
// other headers you may use
#endif
QtNetwork 模块
http://apr.apache.org/docs/apr/trunk/group_apr_network__io.html
我没有找到一个跨平台、轻量级的套接字API。(有poco、boost asio和其他库,但它们都是大而全、复杂的库)
所以我在这里用POSIX套接字和Winsock做了一个简单(但不完整)的包装器:https://github.com/soroush/libcpnet