Re: Q about low lvl UNIX socket programming

From: Jerry Lundström (jerry.lundstrom@citat.se)
Date: Fri Apr 28 2000 - 08:27:24 EST


On Fri, 28 Apr 2000 17:50:39 +0530 (IST), <animesh_singh@bbv.satyam.com> wrote:

>
>Thats simple for eg::
>while(data_to_recv){
> // if ioctl returns -ve you are doomed
> if(ioctl(sock_descriptor,TIOCINQ,(unsigned long)&available) < 0){
> perror("ioctl");
> break;
> }
> if(available > data_to_recv)
> // this is last iteration but be careful
> bytes_recv = recvmsg(sock_descriptor,&buffer,data_to_recv,0);
> else
> //this should give all the data available in sock pipe
> bytes_recv = recvmsg(sock_descriptor,&buffer,available,0);
>
> data_to_recv = data_to_recv - bytes_recv;
>}
>with nonblocking sock recv will return immediatly with EAGAIGN if no data
>is avaible so check for the presence of data in the sock pipe before
>making any recv

Well, the recv part is no problem, it was more the sending part I wanted
to control more then just getting back how much was written.

Ive solved it by using TIOCOUTQ to check how much is free in the sending
buffer. The recv part is easy fixed with position checking since I have
a set size of the message.

Thanks for the help!

--
Jerry.Lundström:<jerry.lundstrom@citat.se>:system.developer/programmer
icq.18682823:mobile+46.739.876053:phone+46.31.7107244:fax+46.31.7107201
citat.solutions:Kronhusgatan.9:SE-411.05.Gothenburg:Sweden
www.citat.se/solutions

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Apr 30 2000 - 21:00:15 EST