Issue with reading data on socket
sai koushik
saikoushik539 at gmail.com
Fri Oct 14 07:27:05 CEST 2011
Hi ,
as per pierre suggestion , i tried to read data whenever callback is
being emitted , it is working now .
Thanks for the help .
Regards,
Sai.
2011/10/14 马承珂 <fatmck at 163.com>
> Connection broken will cause a read event on your socket. So when stdin_cb
> was called, you should try recv() on your sock_fd, check the return value of
> recv().
>
>
>
> At 2011-10-13 14:12:00,"sai koushik" <saikoushik539 at gmail.com> wrote:
>
> Hi ,
>
> i tried to crate a socket client using libev , and this client has to
> listen for data from the server.
> and i tried as below
> ev_io stdin_watcher;
> ....
> sock_fd = socket(PF_UNIX, SOCK_STREAM, 0);
> memset(&addr, 0, sizeof(addr));
> addr.sun_family = AF_UNIX;
> strcpy(addr.sun_path, ifname);
> err = connect(sock_fd, (struct sockaddr *) &addr, sizeof(addr));
> int flags=0;
> fcntl(sock_fd, F_SETFL, flags | O_NONBLOCK);
> ev_io_init(&stdin_watcher,stdin_cb, sock_fd, EV_READ);
> ev_io_start (EV_DEFAULT_UC_ &stdin_watcher);
> ....
>
> and callback is
> static void stdin_cb (EV_P_ ev_io *w, int revents)
> {
> printf("\n callback \n");
> }
>
> issue is when i tried to run client program callback is getting invoked
> forever and it is going into infinte loop.
>
> i didn`t used ev_loop.
> Is above code is in proper way of reading data from from server?
>
> any help?
>
> Thanks
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.schmorp.de/pipermail/libev/attachments/20111014/55f6251d/attachment.html>
More information about the libev
mailing list