0

我有一个应用程序,其中用户(客户端 #1)输入本地 ip 和端口,应用程序将图片发送到客户端 #2(也使用相同的应用程序)。但是对于最终的应用程序,我不希望用户输入本地 ip,因为他们不会知道这些信息,我希望我的程序能够自动解决这个问题。

我的第一个想法:最初,我认为我可以扫描所有本地 ip 以查找开放端口,但这需要的时间太长了。

我的第二个想法:我的下一个想法是让客户端将他们的本地主机名发送到远程服务器,然后交换它们并将它们发送回客户端。

但是,我不想为我的第二个想法运行专用服务器。

因为这更像是一个设计问题,所以我没有包含任何代码,但如果有必要我会这样做。

你们对我应该如何设计我的应用程序以自动找出本地 ips 有任何想法吗?

我确实尝试用谷歌搜索,但找不到解决方案,所以一个小时后我放弃了,只是把我的问题放在这里。如果这是重复的,那么我很抱歉,请删除这个问题。

谢谢,布科

4

1 回答 1

1

您可以使用类似jgroups的东西(允许基于多播 [lan] 等的发现)或一些点对点实现,尽管后者至少需要一些服务器进行初始发现。

原则上,客户端使用某个众所周知的地址向“世界”发送消息并等待某人回答。同时,每个客户端本身都在等待这样的消息,并用如何“连接”到当前客户端的信息来回复它。这可以通过所谓的黑板来完成,其中这个 bb 是多播消息的特殊 tcp 地址(os/tcp 将消息发送到同时侦听的所有客户端)或一个或多个服务器(种子)获取和协调请求和“成员”列表。无论如何,有一些工具;)

于 2013-02-18T20:24:41.203 回答