2016-01-13 7 views
0

我正在使用wxTCPServer/wxTCPClient爲TCP通信編寫我自己的C++庫。 wxTCPConnection類表示連接本身(在每邊)。 wxWidgets版本是3.0.2。如何使用wxTCPServer,wxTCPClient,wxTCPConnection獲取對等IP地址?

一切都很好,我能夠溝通,客戶端和服務器之間傳輸數據,但我看不出有什麼辦法如何確定對端IP地址...

我認爲這是非常重要的,有些服務器可能需要知道用於IP過濾的IP地址,或者至少需要正確記錄連接和/或通信。

我也看過wxSocketServer/wxSocketClient,但看起來好像沒有辦法來確定對等IP地址。

所以,問題是:

  1. 我怎麼能確定wxTCPServer::OnAcceptConnection(const wxString& topic)客戶端地址?奇怪,但看起來沒有這樣的數據由wxTCPServerwxTCPConnection提供。我在wxWidgets文檔和其他地方找不到它。

  2. 使用免費/ GPL庫實現跨平臺(Linux + MSW)TCP(?)客戶機/服務器通信的其他簡單方法?我並不真的需要所有的TCP在wxWidgets中實現像topicitem的東西,我只需要以下(?):

    • 使用主機名(或IP)和端口號進行連接,
    • 已當它連接(接收/拒絕傳入的連接)時訪問對等IP,
    • 一次發送和接收字節序列高達,比如1Mb,
    • 自動傳輸糾錯將是一件好事。

我會處理我自己的一切(我自己的協議)。

回答

0

wxWidgets中的IPC類是爲了從TCP的詳細信息(例如IP地址)中抽象出來,實際上它們可以在MSW下與DDE一起使用,在這種情況下,IP地址問題並沒有什麼意義。

您可以直接使用wxSocket,然後您可以撥打GetPeer()來獲取遠程地址。