2011-03-28 54 views
1

基本上,我有一个主系统和3个从系统。我已经使用了请求/响应阶段将内容发送到我的客户端系统中的3个,因为它固有地解决了我的数据分割问题。在将内容发送到我的客户端系统中的3个之后,我关闭了负责REQ/REP topolgy的套接字,并创建了另一些与各个从属系统配对的套接字,以便接收来自所有3系统的内容。我在localhost中运行了整个代码,我没有遇到任何问题,并且一切顺利,即使我试图从客户端系统的一个主系统发送40MB数据集。通过局域网发送大块数据时,ZMQ失败

的问题是,当我试图在我的实验室

  1. 的REQ/REP阶段运行顺利实施这种过度LAN,所以基本上所有的客户端系统获取的数据集上下工夫。

  2. 当我尝试处理大量数据时(如40MB,我不认为更大,因为我加载字典中的内容和字典对象的大小来到24MB),客户端的个人对比失败了。会因为某种原因而窒息而无法处理。

我不知道为什么它在LAN上的行为不同于我的系统。

,我在局域网中使用的系统(所有4个系统)

AMD双核64位,拥有2GB RAM柜面,如果你有兴趣来运行代码:

主站系统代码:http://codepad.org/5uVCEb42

Salve1:http://codepad.org/LNmi9vu2

SLAVE2:http://codepad.org/0vmEAJYc(这个需要从文件40MB量,最后传递到主站系统)

Slave3:http://codepad.org/d565lgiv

回答

2

PAIR套接字不会自动重新连接,因此不推荐使用LAN。

+0

有没有其他办法可以解决这个问题? – Rahul 2011-03-30 10:02:20

+0

REQ-REP。当你需要发送大量的数据REQuest许可时。 REPLY会告诉你继续,然后你可以请求确认。然后收件人回复说,这一切都通过确定。 – 2011-07-01 02:18:01

+0

使第一个REQ发送一个字节数以期望和一个校验和。 – 2011-07-01 02:18:21