2010-11-21 50 views
6

我在做一個簡單的跨平臺聊天程序。我正在使用wXWidgets進行GUI工作,但我需要一種方法來創建套接字並創建服務器客戶端設置。是否有一個API,例如底層使用Windows上的WinSock,以及Linux的本地socket和osx?跨平臺簡單的TCP/IP API?

我不想尋求提升作爲一種解決方案,因爲我會讓它開源,並不是每個人都覺得安裝一個70 + MB的庫。

感謝

+4

它有點可悲,如果一個C++開發人員不能打擾安裝升壓 – Inverse 2010-11-21 01:38:12

+1

當我做我使用升壓個人項目,但如果他們是開源或圖書館項目,我會避免它,因爲我很少看到依賴它的圖書館。 – jmasterx 2010-11-21 01:54:10

+0

你可以使用boost :: asio – 2011-06-14 22:58:35

回答

5

QtNetwork模塊

+4

如果OP認爲boost太大的依賴性,我不認爲Qt會更輕... – Inverse 2010-11-21 01:39:52

+0

是啊QT是非常大的,但靜態鏈接只有所需的庫將減少可執行文件的最終大小 – hhafez 2010-11-21 01:46:40

5

的Winsock與POSIX Socket 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 
0

我回答這個七歲的問題,希望這可以幫助別人,總有一天(:

我都未能找到一個跨平臺的,輕量級 API上的插座(有POCO,提高ASIO和其他人在那裏,但他們是大的,全面的和複雜的庫)

所以我對POSIX套接字和Winsock在這裏做一個簡單的(和不完整)包裝:https://github.com/soroush/libcpnet

+0

儘管此鏈接可能會回答問題,但最好在此處包含答案的重要部分,並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/ review/low-quality-posts/17295967) – TobiMcNamobi 2017-09-11 13:15:59