Hi I am using the Ubuntu on windows subsystem for linux.
These are the libraries that I have installed: libzmq3-dev/bionic-updates,bionic-security,now 4.2.5-1ubuntu0.2 amd64 [installed] libzmq5/bionic-updates,bionic-security,now 4.2.5-1ubuntu0.2 amd64 [installed,automatic] libczmq-dev/bionic,now 4.1.0-2 amd64 [installed] libczmq4/bionic,now 4.1.0-2 amd64 [installed] Thanks -- sp Date: Fri, 27 Sep 2019 11:54:34 +0200 From: Arnaud Loonstra <arn...@sphaero.org> To: zeromq-dev@lists.zeromq.org Subject: Re: [zeromq-dev] segmentation fault with czmq Message-ID: <69735669-5da6-5bce-ad2d-32e9d57cc...@sphaero.org> Content-Type: text/plain; charset=windows-1252; format=flowed What platform are you on and what versions of the libs are you using? On 27-09-2019 01:22, Shishir Pandey wrote: > Hi > > I was trying to run the lpclient.c (lazie pirate, chapter 4, > https://nam02.safelinks.protection.outlook.com/?url=http%3A%2F%2Fzguid > e.zeromq.org%2Fpage%3Aall%23Client-Side-Reliability-Lazy-Pirate-Patter > n&data=02%7C01%7C%7Cc4def6b10ead43eba31408d7433180bc%7C84df9e7fe9f > 640afb435aaaaaaaaaaaa%7C1%7C0%7C637051752197523692&sdata=dqN9M3y1k > NVd6AtJgTMMu70jFYvEGcd6tRNAlGvxEs4%3D&reserved=0) > ??program from the guide. The program uses the old czmq API and does > not work. I was trying to run with the latest czmq library and change > the program to the following program : > > #include<czmq.h> > > #defineREQUEST_TIMEOUT2500//?msecs,?(>1000!) > > #defineREQUEST_RETRIES3//?Before?we?abandon > > #defineSERVER_ENDPOINT"tcp://localhost:5555" > > intmain() > > { > > zsock_t?*client?= zsock_new_req(SERVER_ENDPOINT); > > printf("I:?Connecting?to?server...\n"); > > assert(client); > > int?sequence?= 0; > > int?retries_left?=?REQUEST_RETRIES; > > printf("Entering?while?loop...\n"); > > while(retries_left) //?interrupt?needs?to?be?handled > > ????{ > > //?We?send?a?request,?then?we?get?a?reply > > charrequest[10]; > > sprintf(request, "%d",?++sequence); > > zstr_send(client,?request); > > int?expect_reply?= 1; > > while(expect_reply) > > ????????{ > > printf("Expecting?reply....\n"); > > zmq_pollitem_t?items []?=?{{client, 0,?ZMQ_POLLIN, 0}}; > > printf("After?polling\n"); > > int?rc?= zmq_poll(items, 1,?REQUEST_TIMEOUT?*?ZMQ_POLL_MSEC); > > printf("Polling?Done.. \n"); > > if?(rc?==?-1) > > break; //?Interrupted > > //?Here?we?process?a?server?reply?and?exit?our?loop?if?the > > //?reply?is?valid.?If?we?didn't?get?a?reply?we?close?the > > //?client?socket,?open?it?again?and?resend?the?request.?We > > //?try?a?number?times?before?finally?abandoning: > > if?(items[0].revents?&?ZMQ_POLLIN) > > ????????????{ > > //?We?got?a?reply?from?the?server,?must?match?sequence > > char?*reply?= zstr_recv(client); > > if(!reply) > > break; //?interrupted > > if?(atoi(reply)?==?sequence) > > ????????????????{ > > printf("I:?server?replied?OK?(%s)\n",?reply); > > ????????????????????retries_left=REQUEST_RETRIES; > > ????????????????????expect_reply?= 0; > > ????????????????} > > else > > ????????????????{ > > printf("E:?malformed?reply?from?server:?%s\n",?reply); > > ????????????????} > > free(reply); > > ????????????} > > else > > ????????????{ > > if(--retries_left?== 0) > > ????????????????{ > > printf("E:?Server?seems?to?be?offline,?abandoning\n"); > > break; > > ????????????????} > > else > > ????????????????{ > > printf("W:?no?response?from?server,?retrying...\n"); > > zsock_destroy(&client); > > printf("I:?reconnecting?to?server...\n"); > > ????????????????????client?= zsock_new_req(SERVER_ENDPOINT); > > zstr_send(client,?request); > > ????????????????} > > ????????????} > > ????????} > > zsock_destroy(&client); > > return0; > > ????} > > } > > I get a segmentation fault on line ? ? int rc = zmq_poll(item?.? > Wasn?t able to fix it, could some one help me with this? > > Thanks. > > -- > > sp _______________________________________________ zeromq-dev mailing list zeromq-dev@lists.zeromq.org https://lists.zeromq.org/mailman/listinfo/zeromq-dev