Qt上Internet上的点对点

Qt上Internet上的点对点,qt,p2p,qtcpsocket,qtnetwork,nat-traversal,Qt,P2p,Qtcpsocket,Qtnetwork,Nat Traversal,我需要在应用程序之间进行点对点通信 应用程序还应在互联网上自动找到彼此。为此,我需要克服NAT遍历,等等 例如,我需要使用如下通信方式: InternetPeer peer; peer.setName("my_name"); peer.listen(); // accept connections peer.startSearchForOthers(); // find another peers connect(&peer, &InternetPeer::newConne

我需要在应用程序之间进行点对点通信

应用程序还应在互联网上自动找到彼此。为此,我需要克服
NAT遍历
,等等

例如,我需要使用如下通信方式:

InternetPeer peer;

peer.setName("my_name");

peer.listen(); // accept connections
peer.startSearchForOthers(); // find another peers

connect(&peer, &InternetPeer::newConnection, this, ...);

connect(&peer, &InternetPeer::anotherPeerFound, this, ...);

QStringList peerNames = peer.availablePeers();

peer.sendMessage(peerNames.at(0), "Hello");

peer.close();
然后,最好能用
qtcsocket
QUdpSocket
访问这样的连接


<>这是如何在Qt和C++中完成的?

从一个简单的项目开始。编写一些代码以获得应用程序交换消息的两个副本。您可以在网上找到一个示例QT聊天应用程序,它将帮助您了解过程。@Johneleman我知道QT聊天示例,但没有adea如何通过Internet连接。这里的问题实际上是p2p部分,而不是与QT有关。为此,您可能需要考虑使用IP多播公告/发现机制,例如。更仔细地看,如果您设置了IP聊天,则只需使用远程IP地址。同样的事情!从一个简单的项目开始。编写一些代码以获得应用程序交换消息的两个副本。您可以在网上找到一个示例QT聊天应用程序,它将帮助您了解过程。@Johneleman我知道QT聊天示例,但没有adea如何通过Internet连接。这里的问题实际上是p2p部分,而不是与QT有关。为此,您可能需要考虑使用IP多播公告/发现机制,例如。更仔细地看,如果您设置了IP聊天,则只需使用远程IP地址。同样的事情!