【问题标题】:Send packet from server to specific client using saved client ip address?使用保存的客户端 IP 地址将数据包从服务器发送到特定客户端?
【发布时间】:2013-04-07 00:24:23
【问题描述】:

假设我正在使用异步服务器并且客户端连接到服务器。服务器保存客户端的 IP 地址、端口号等信息,并将其存储在数据库中以备将来使用,有没有办法获取客户端信息并存储它。我尝试查看socket 实现,但找不到任何方法来确定客户端用来发送数据的IP 地址。我还想知道如果我使用 localhost(例如 127.0.0.1)在同一台机器上测试多个客户端会发生什么冲突?

【问题讨论】:

    标签: c++ client-server boost-asio ip-address


    【解决方案1】:

    使用socket::remote_endpoint() 方法获取已连接套接字的端点。从同一个远程主机连接的多个客户端将使用不同的端口号,例如127.0.0.1:1234127.0.0.1:5678

    【讨论】:

    • 所以我得到了这部分boost::asio::ip::tcp::endpoint endpoint = socket.remote_endpoint(ec); 但是我如何使用endpoint 对象向客户端发送数据包?顺便说一下,对于异步服务器。
    • 实际上查看代码我意识到我只需要向endpoint.addressendpoint.port 发送一个数据包,但提升writesend 没有任何ip 或港口?
    • @lost tcp 套接字对数据流进行操作,而不是对数据包进行操作。您使用套接字而不是端点发送数据。如果您的理解不清楚,我建议提出一个新问题。
    • 好吧,我从这里开始stackoverflow.com/questions/16006894/…
    猜你喜欢
    • 2013-02-27
    • 2014-01-16
    • 1970-01-01
    • 1970-01-01
    • 2013-04-11
    • 2021-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多