3

我的任务是为内部和外部员工编写一个 Messenger 程序,我确实做到了。但是,我认为通过使用客户端软件从服务器保留“检查消息”,这确实不是一个好方法。所以我想我只是在模拟IM程序。

我想让客户端应用程序成为监听服务器,并让用户 p2p 在主服务器上没有“消息中心”的情况下交谈(除非发生离线消息)。问题是当我在路由器后面时如何告诉外部用户(其他客户端应用程序)我的位置?

那些在客户端机器上运行的其他 IM 程序也作为服务器运行吗?他们如何度过难关?

提前致谢!

4

1 回答 1

1

连接到路由器后面的系统非常复杂,而且并非总是可行。使用 UDP 执行此操作的一个有据可查的方法是STUN 协议(主要用于基于SIP的 VoIP)。如果无法绕过路由器,则只能使用开放网络中的服务器作为中介(一些 P2P 系统也会将连接良好的对等点推广到此类中介)。SIP 使用TURN作为中介协议。为客户找出正确解决方案的 SIP 协议是ICE

另请参见NAT 遍历

于 2010-05-25T08:42:02.937 回答