java - TCP 套接字创建类如何收到一个新对等点已添加到注册表的通知?

标签 java multithreading tcp hashmap p2p

我正在实现 P2P 服务。这个想法是使用 UDP 来搜索对等点并构建自己的注册表。并使用TCP进行真正的通信。 如果再有一个对等点添加到该对等点的注册表中,我想再创建一个新的 TCP 套接字连接。注册表是在 hashmap 中实现的。
TCP 套接字创建类如何收到一个新对等点已添加到注册表的通知?

最佳答案

只需实现一个像“TcpConnectionManager”这样的类,它可以在注册表中注册自己 - 让我们在启动时将其称为“P2PConnectionRegistry”。 (注册表必须是维护 HashMap 的类 - 它不能是 HashMap。)。

如果必须创建新连接,请调用 p2pConnRegistry.addConnection(...);来自某个地方(例如 UI)。

此方法添加其内部数据结构(例如 HashMap)所需的参数 - 然后调用registryListener.connectionAdded(...); 此registryListener 是TcpConnectionManager 的一个实例。

这是一个非常简单的“关注点分离”模型。

我希望这是你的问题,它有帮助,问候, 迈克尔

关于java - TCP 套接字创建类如何收到一个新对等点已添加到注册表的通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8543643/

相关文章:

sockets - Indy TCP Socket 可以在两个线程之间共享吗?

c++ - 你如何着手制作基于 tcp 的可靠 udp 协议(protocol)?

Java:Writer.write() 和 Writer.append() 是一样的;为什么它们都存在?

java - AsyncTask.THREAD_POOL_EXECUTOR 返回值

java - 我可以这样做,这样我就不必添加空格来获得总和吗?

java - 如何在 Eclipse 断点中降低 Java testrunner 的优先级?

java - 当 Activity 发生变化时,如何保持与服务器的 TCP 连接?

java - Spring-Hibernate 集成 : Unable to persist

MySQL 读取返回后面的行,但不返回前面的行

java - 如何测量使用Sockets和并发时的时间