我有一个典型的客户端服务器通信 - 客户端将数据发送到服务器,服务器处理数据,并将数据返回给客户端。问题是过程操作可能需要相当长的时间 - 数量级 - 分钟。可以使用一些方法来解决这个问题。
我想知道哪种方法是最好的使用方法。解决这个问题可能有一些“事实上的”标准吗?在Java中打开套接字有多“昂贵”?解决方案1.对我来说似乎很讨厌,但2.和3.可以做到。解决方案2的问题在于服务器需要知道客户端正在侦听哪个端口,而解决方案3.增加了一些网络开销。
答案 0 :(得分:2)
打开套接字有时很昂贵,但并不贵于数据处理。
答案 1 :(得分:0)
我发现选项2存在直接问题。如果客户端位于防火墙后面,他可能会被允许连接并执行请求,但可能会阻止服务器连接回cilent。
正如你所说的,选项1看起来有点讨厌(虽然不是很讨厌,但可以正常工作),所以在列出的选项中,我会选择选项3.也许服务器可以估计处理剩下的时间,并在每次民意调查中提示客户什么时候回来检查。