Note that there are some explanatory texts on larger screens.

plurals
  1. POSimple ZeroMQ Perl (AnyEvent) HelloWorld program hangs after two loop iterations
    primarykey
    data
    text
    <p>I slightly modified the helloworld server program (<a href="https://github.com/imatix/zguide/blob/master/examples/Perl/hwserver.pl" rel="nofollow">hwserver.pl</a>) from the ZeroMQ guide, to implement it with AnyEvent. Yet after two iterations of REQ/REP, the program hangs. Can someone figure out why?</p> <p>Here's the server:</p> <pre class="lang-perl prettyprint-override"><code>#!/usr/bin/perl -w use strict; use warnings; use 5.12.0; use EV; use AnyEvent; use ZMQ::LibZMQ3; use ZMQ::Constants qw/ ZMQ_REP ZMQ_FD /; my $context = zmq_init(); my $responder = zmq_socket($context, ZMQ_REP); my $fh = zmq_getsockopt( $responder, ZMQ_FD ); zmq_bind($responder, 'tcp://*:5555'); our $w; $w = AE::io $fh, 0, sub { say "Receiving..."; zmq_recv($responder, my $buf, 1_000_000); say "Received request: [$buf]"; sleep(1); zmq_msg_send('World', $responder); sleep(1); }; EV::run; </code></pre> <p>And here's the client:</p> <pre><code>#!/usr/bin/perl -w use strict; use warnings; use 5.12.0; use ZMQ::LibZMQ3; use ZMQ::Constants qw(ZMQ_REQ); my $context = zmq_init(); # Socket to talk to server say 'Connecting to hello world server...'; my $requester = zmq_socket($context, ZMQ_REQ); zmq_connect($requester, 'tcp://localhost:5555'); for my $request_nbr (0..9) { say "Sending request $request_nbr..."; zmq_msg_send('Hello', $requester); my $msg = zmq_msg_init(); say "Receiving..."; zmq_msg_recv($msg, $requester); say "Received reply $request_nbr: [". zmq_msg_data($msg) ."]"; } </code></pre> <p>And here's the output of the server:</p> <pre><code>Receiving... Received request: [Hello] Receiving... Received request: [Hello] </code></pre> <p>And here's the output of the client:</p> <pre><code>Connecting to hello world server... Sending request 0... Receiving... Received reply 0: [World] Sending request 1... Receiving... Received reply 1: [World] Sending request 2... Receiving... </code></pre> <p>What's wrong?</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload