Re: g_io_add_watch, g_io_channel_read stops working after sometime.
Hi James, The problems seems to be solved.. I had to return TRUE from my callback function read_request() and listentosocket is the channel. listentosocket = g_io_channel_unix_new (global_sock); thanks for your reply and yes i am now listening to G_IO_HUP also... regards, Rehan. James Scott Jr-2 wrote: On Wed, 2007-04-18 at 04:39 -0700, Rehan wrote: Hi, I am trying to write a program based on client-server architecture. I need only one client connection hence i am first listening to client then accept() is called. after accept() i call g_io_channel_unix_new () and then g_io_add_watch() and later in the function i use g_io_channel_read to read data from the channel. Everything works fine till 4-5 requests from the client. Later the server simply stops listening to client. I have tried tcpdump on server side and i do recieve the TCP packet from the client. So it means there is some bug at server side. I am not sure if i have done something wrong or some bug in core library... I am confused as the code works for 4-5 request and then simply starts ignoring the client messages. Is g_io_add_watch ignoring the incoming signals?? thats what i can detect from my gdb tracing there is no invocation of my function even if i recieve a packet on server side from the client in summary function calls: -socket(AF_INET,SOCK_STREAM,0) -bind(sockfd, (struct sockaddr *)serv_addr, sizeof(serv_addr))) -listen(sockfd,5) -accept(sockfd, (struct sockaddr *) cli_addr, clilen) -g_io_channel_unix_new (global_sock) -g_io_add_watch(listenonsocket, G_IO_IN | G_IO_PRI,read_request,global_sock) Rehan, What is listenonsocket ? Why no G_IO_HUP ? the above sequence is correct; however the api values seem to be wrong and in the wrong order! Post or include the real code. As an example, look at the code in this sample sknet for the following url. http://mysite.verizon.net/skoona/id1.html James, -g_io_channel_read(channel,len,sizeof(len),bytes_read); I hope somebody comes to my rescue its been now 3 days i am trying to solve this problem but no success... Thanks in advance for all great coders Regards, RS. ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list -- View this message in context: http://www.nabble.com/g_io_add_watch%2C-g_io_channel_read-stops-working-after-sometime.-tf3600490.html#a10077825 Sent from the Gtk+ - Apps Dev mailing list archive at Nabble.com. ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
g_io_add_watch, g_io_channel_read stops working after sometime.
Hi, I am trying to write a program based on client-server architecture. I need only one client connection hence i am first listening to client then accept() is called. after accept() i call g_io_channel_unix_new () and then g_io_add_watch() and later in the function i use g_io_channel_read to read data from the channel. Everything works fine till 4-5 requests from the client. Later the server simply stops listening to client. I have tried tcpdump on server side and i do recieve the TCP packet from the client. So it means there is some bug at server side. I am not sure if i have done something wrong or some bug in core library... I am confused as the code works for 4-5 request and then simply starts ignoring the client messages. Is g_io_add_watch ignoring the incoming signals?? thats what i can detect from my gdb tracing there is no invocation of my function even if i recieve a packet on server side from the client in summary function calls: -socket(AF_INET,SOCK_STREAM,0) -bind(sockfd, (struct sockaddr *)serv_addr, sizeof(serv_addr))) -listen(sockfd,5) -accept(sockfd, (struct sockaddr *) cli_addr, clilen) -g_io_channel_unix_new (global_sock) -g_io_add_watch(listenonsocket, G_IO_IN | G_IO_PRI,read_request, global_sock) -g_io_channel_read(channel,len,sizeof(len),bytes_read); I hope somebody comes to my rescue its been now 3 days i am trying to solve this problem but no success... Thanks in advance for all great coders Regards, RS. -- View this message in context: http://www.nabble.com/g_io_add_watch%2C-g_io_channel_read-stops-working-after-sometime.-tf3600490.html#a10056937 Sent from the Gtk+ - Apps Dev mailing list archive at Nabble.com. ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
Re: g_io_add_watch, g_io_channel_read stops working after sometime.
On Wed, 2007-04-18 at 04:39 -0700, Rehan wrote: Hi, I am trying to write a program based on client-server architecture. I need only one client connection hence i am first listening to client then accept() is called. after accept() i call g_io_channel_unix_new () and then g_io_add_watch() and later in the function i use g_io_channel_read to read data from the channel. Everything works fine till 4-5 requests from the client. Later the server simply stops listening to client. I have tried tcpdump on server side and i do recieve the TCP packet from the client. So it means there is some bug at server side. I am not sure if i have done something wrong or some bug in core library... I am confused as the code works for 4-5 request and then simply starts ignoring the client messages. Is g_io_add_watch ignoring the incoming signals?? thats what i can detect from my gdb tracing there is no invocation of my function even if i recieve a packet on server side from the client in summary function calls: -socket(AF_INET,SOCK_STREAM,0) -bind(sockfd, (struct sockaddr *)serv_addr, sizeof(serv_addr))) -listen(sockfd,5) -accept(sockfd, (struct sockaddr *) cli_addr, clilen) -g_io_channel_unix_new (global_sock) -g_io_add_watch(listenonsocket, G_IO_IN | G_IO_PRI,read_request,global_sock) Rehan, What is listenonsocket ? Why no G_IO_HUP ? the above sequence is correct; however the api values seem to be wrong and in the wrong order! Post or include the real code. As an example, look at the code in this sample sknet for the following url. http://mysite.verizon.net/skoona/id1.html James, -g_io_channel_read(channel,len,sizeof(len),bytes_read); I hope somebody comes to my rescue its been now 3 days i am trying to solve this problem but no success... Thanks in advance for all great coders Regards, RS. ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list