Udp IM的端口转发?

Udp IM的端口转发?,udp,listener,Udp,Listener,今天,我构建了一个基于UDP的聊天软件,它使用UDP侦听器和服务器来形成聊天应用程序 当我把它交给我的朋友测试时,他,他必须向前移植,这样我的信息才能通过is路由器到达他,我也是 我很好奇,像msn messenger和skype这样的即时通讯客户端是如何工作的。比如他们如何接收消息而不必转发 谢谢, VidhuMSN等。客户端连接到第三方远程服务器,该服务器在技术上也具有端口转发/路由,但通过静态IP地址向公众公开。您下载一个像MSN这样的客户端应用程序,它连接到一个远程服务器,但客户端本身并

今天,我构建了一个基于UDP的聊天软件,它使用UDP侦听器和服务器来形成聊天应用程序

当我把它交给我的朋友测试时,他,他必须向前移植,这样我的信息才能通过is路由器到达他,我也是

我很好奇,像msn messenger和skype这样的即时通讯客户端是如何工作的。比如他们如何接收消息而不必转发

谢谢,
Vidhu

MSN等。客户端连接到第三方远程服务器,该服务器在技术上也具有端口转发/路由,但通过静态IP地址向公众公开。您下载一个像MSN这样的客户端应用程序,它连接到一个远程服务器,但客户端本身并不充当服务器,因此不需要端口转发。它很可能会消耗消息和块,直到更多的消息传入,因此服务器不需要通过IP地址访问它来向其发送消息

在您的情况下,由于您在专用网络上托管远程服务器,因此您需要将该IP地址的流量路由到连接到该IP地址的适当内部设备,就像您在一台计算机上托管任何其他内容(如网站)一样

由于您的朋友还必须向前移植以使应用程序正常工作,因此他们的客户机似乎也充当服务器,无法与您的服务器保持连接/套接字。如果客户机要与服务器保持套接字连接,只有您需要向前移植,而您的朋友不会,因为他们的客户机只会侦听请求并阻止,直到它们进来,然后将请求发送到您的服务器


您可能想研究一个真正的消息总线,比如RabbitMQ,您可以托管这个消息总线,然后构建您的客户机来订阅它并发送/接收消息。另一个选项是Redis,您可以使用POP功能删除客户端从队列中检索的“读取”消息