Boost Asio中无服务器P2P UDP聊天最简单直接的方法是什么?聊天将在互联网上运行。有现成的UDP示例,但它们都维护客户端 - 服务器方法!
答案 0 :(得分:3)
我假设无服务器是指没有中央控制服务器的P2P网络。
IMO你的问题与boost-asio几乎没有关系。 asio是一个跨平台的网络库。您似乎更多地询问网络工程类型问题,asio只是您可以用于实现的工具之一。
示例是客户端 - 服务器,因为示例应用程序可能属于客户端 - 服务器体系结构。但是,无论客户端服务器或P2P应用程序如何,用于发送和接收消息的套接字代码(或asio用法)都是相同的,即您向某个地址发送消息并在指定端口上接收消息。这些差异将出现在协议层,但这与asio本身无关。
您可能对以下内容感兴趣或不感兴趣:IMO没有简单方式:位于防火墙和NAT后面的用户意味着您需要使用STUN等技术, TURN和ICE解析地址或最坏情况下的中继数据。所有这些设计都需要服务器。