有关群集客户端服务器通信的任何建议。进场?

时间:2010-01-16 13:47:39

标签: c sockets client-server

假设我正在构建一个客户端服务器软件。主服务器连接到不同服务器上的代理。代理是一个搜索客户端,每个代理都将返回相当大的64位整数数组,最后主服务器(父服务器)将对其进行排序以产生最终结果。

哪种方法更好/更快,

  1. 使用套接字从客户端获取所有数据,或
  2. 使用socket发送客户端状态和请求id,结果然后存储在具有该id的临时平面文件中(主服务器将需要访问位于客户端svr上的临时文件)?

2 个答案:

答案 0 :(得分:2)

我不会在客户端上使用临时临时文件,因为通过网络访问它不会更快,然后将其内容直接通过套接字写入服务器。但是,您可能希望将协议设计为以较小的数量发送数据,以便从服务器获得响应,这样,如果在发送期间连接断开,则无需重新发送整个数据。这样做的另一个好处是,如果由于某种原因它不再需要它,那么让服务器通过关闭连接来取消响应execpt。

答案 1 :(得分:1)

KISS原则是你的朋友。

如果您的目标是性能 - 那么您必须使用套接字并将所有内容存储在内存中

如果你想快速实现并且简单 - 我会选择简单的HTTP请求,并将文件放在服务器的共享磁盘上(我会说,它的实现速度要快3倍)。