java - 如何保持Socket连接?

标签 java sockets tcp chat p2p

假设我们有聊天应用程序,它允许我们拥有联系人,并且我们可以与联系人中的任何人聊天。我们的应用程序在接收消息时应该表现得像服务器,在发送消息时表现得像客户端。 在Java中,当我们想要建立TCP连接客户端时,我们使用套接字:

Socket client = new Socket(hostIPAddress, portNumber);

现在,我已经学会了使用本地计算机作为服务器来使用套接字,但是为了使聊天应用程序实用,它应该允许两个不同设备之间的通信。

现在,客户端必须拥有我们想要通信的其他设备的 IP 地址。我是否应该维护聊天应用程序中所有联系人的 IP 地址列表。此外,IP 地址可能是动态的并且可能会不时改变。如何解决这样的问题呢?直观上,IP 地址似乎不起作用。

编辑:

目的是建立点对点连接,而不是使用集中式服务器。我想制作一个简单的应用程序,没有太多复杂性。

最佳答案

您将需要使用一种称为 WebSockets 的技术。它是专门针对您当前的用例而构建的。 请参阅https://www.baeldung.com/java-websockets了解更多信息。

关于java - 如何保持Socket连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53705010/

相关文章:

c++ - 如何在 TCP/IP 中为消息长度添加前缀

elasticsearch - 通过 JSON 查询在 Java 客户端中聚合 - 没有 AggregationBuilder

允许不可编译代码的#ifdef的Java等价物

java - 模拟 : mock method call with parameters by reflection

java - 线程卡在 readUTF() 中

c - 如何在 pcap_loop 的回调函数中注入(inject)数据包?

java - HttpClient 使用成功执行的方法卡在 socketRead0 上

java - 找出哪一行已被更新/删除 JDBC (ResultSet)

javascript - 无法使用javascript连接网络套接字

c - 如何在用作 tcp 服务器的线程中使用带有函数参数的函数