我有一个 Java 客户端/服务器应用程序,我在其中与单个客户端共享一个文件(tsv 文件),该客户端可以在他的 UI 中查看和修改它,并将更新的版本发送回服务器。我正在使用 TCP 套接字执行此操作。
现在我想让它可供多个客户使用。为了实现这一点,我想使用以下“协议”: - 每次对客户端进行修改时,他都会向服务器发送修改后的记录以及有关修改的一些信息(编辑、添加、删除)。服务器接收到这个并将修改发送到所有连接的客户端。- 然后我让客户端在一个单独的线程中“监听”套接字输入流上的服务器,等待更新通知。
我的问题是套接字中的通信不适用于该设计。我不知道它来自哪里,当我调试我的代码时,“接收”方法被阻塞了。我认为这可能是因为在客户端套接字端,我在同一个 inputStream 上的两个不同线程中接收消息,这样做有问题吗?否则我应该为每个客户端打开 2 个套接字,一个用于侦听更新,一个用于常规使用?
如果您对我应该使用的协议有任何其他建议,我会很高兴听到它们:)