如何使用wxTCPServer,wxTCPClient,wxTCPConnection获取对等IP地址?

时间:2016-01-13 07:45:28

标签: c++ sockets tcp ip-address wxwidgets

我正在使用wxTCPServer / wxTCPClient编写自己的C ++ lib进行TCP通信。 wxTCPConnection类表示连接本身(在每一侧)。 wxWidgets版本为3.0.2。

一切都很好,我能够在客户端和服务器之间进行通信和传输数据,但我看不出如何确定对等IP地址......

我认为非常重要,有些服务器可能需要知道IP过滤的IP地址,或者至少是为了正确记录连接和/或通信。

我还看了wxSocketServer / wxSocketClient,但看起来没有办法确定对等IP地址。

所以,问题是:

  1. 如何在wxTCPServer::OnAcceptConnection(const wxString& topic)中确定客户地址?很奇怪,但似乎wxTCPServerwxTCPConnection没有提供此类数据。我在wxWidgets文档和其他任何地方都没有发现它。

  2. 使用free / GPL库实现跨平台(Linux + MSW)TCP(?)客户端/服务器通信的其他简单方法?我并不真的需要在topicitem这样的wxWidgets中实现的所有TCP(?)内容,我只需要以下内容:

    • 使用主机名(或IP)和端口号进行连接,
    • 连接时可以访问对等IP(接收/拒绝传入连接),
    • 一次发送和接收字节序列,例如1Mb,
    • 自动转移纠错会很好。
  3. 我自己处理其他所有事情(我自己的协议)。

1 个答案:

答案 0 :(得分:0)

wxWidgets中的IPC类旨在从TCP详细信息(例如IP地址)中抽象出来,实际上它们可以在MSW下与DDE一起使用,在这种情况下,IP地址的问题实际上没有意义。 / p>

您可以直接使用wxSocket,然后就可以拨打GetPeer()来获取远程地址。