我正在编写一个应用程序,用于分享内容。您有一个“同行”列表。选择其中一些人,您就可以开始共享内容(文本和二进制数据)。在局域网中,如果输入其他人的IP地址,则通信可以进行。
我有几个问题:
1. 是否有某种模式可用于编写此类聊天应用程序,以便发现谁在线和谁不在线(本地和互联网上都是如此)?我知道可以通过连接到所有集中式服务器来完成,但是分散式的情况怎么办,特别是当您在LAN上时?
2. 连接到在线客户端时,它们大多没有IP地址,而是被防火墙等东西所包围,显然IP地址不是机器的IP地址,而且某些端口将被阻止。有什么解决方法?
附言:我已经阅读了许多与此相关的stackoverflow页面。有些人说可以,有些人说不行。有些甚至提供了有关C#比特流客户端和服务器的信息。只要我能在.NET中完成,我非常愿意听取建议。(C#,F#,VB都可以)
非常感谢任何建议。
我有几个问题:
1. 是否有某种模式可用于编写此类聊天应用程序,以便发现谁在线和谁不在线(本地和互联网上都是如此)?我知道可以通过连接到所有集中式服务器来完成,但是分散式的情况怎么办,特别是当您在LAN上时?
2. 连接到在线客户端时,它们大多没有IP地址,而是被防火墙等东西所包围,显然IP地址不是机器的IP地址,而且某些端口将被阻止。有什么解决方法?
附言:我已经阅读了许多与此相关的stackoverflow页面。有些人说可以,有些人说不行。有些甚至提供了有关C#比特流客户端和服务器的信息。只要我能在.NET中完成,我非常愿意听取建议。(C#,F#,VB都可以)
非常感谢任何建议。