【发布时间】:2011-02-15 20:50:56
【问题描述】:
我有一个典型的客户端服务器通信 - 客户端向服务器发送数据,服务器处理该数据,并将数据返回给客户端。问题是过程操作可能需要相当长的时间 - 数量级 - 分钟。有几种方法可以用来解决这个问题。
- 建立连接并使其保持活动状态,直到操作完成并且客户端收到响应。
- 建立连接,发送数据,关闭连接。现在处理发生了,一旦完成,服务器就可以与客户端建立连接以发送数据。
- 建立连接,发送数据,关闭连接。进行处理。如果操作完成,客户端每隔 n 分钟/秒询问服务器。如果处理完成,客户端将获取数据。
我想知道哪种方法是最好的使用方法。是否有一些“事实上的”标准来解决这个问题?在 Java 中打开套接字有多“昂贵”?解决方案 1. 对我来说似乎很讨厌,但 2. 和 3. 可以。解决方案 2. 的问题是服务器需要知道客户端正在侦听哪个端口,而解决方案 3. 增加了一些网络开销。
【问题讨论】:
标签: java networking client-server stream