Hi All!!!

I have found the reasons(explained below) for which it was behaving
erroneously. But this has given birth to more querries...!!! :-)


> 1)    The client is unable to send/recieve messages from the server in
> the first call to recieve/send. It requires exactly two messages
> before the communication actually starts between the client and the
> server. Once established, no errors occur. I have to find the cause of
> failure on the initial two attempts.

The problem was happening because I had called the client in non-
blocking mode and not properly checked the error codes returned by
PR_GetError()... I ran a loop and checked it for PR_IN_PROGRESS error
and called PR_Poll and then PR_GetConnectStatus... Also checked for
PR_WOULD_BLOCK error and repeated the loop(which called PR_Recv again)

> 2)    The server side(uses a blocking socket) on calling recieve
> returns properly with the first packet. Upon being called
> subsequently, it doesn't block(as expected) but returns with a single
> byte NULL character. If it is called again, then it blocks like any
> other blocking socket... This however, is not the case with the
> client(non-blocking). I have to figure out the cause of this as
> well..

On the client side, I had passed the PR_Send function the total length
of the buffer instead of just the length of the current buffer-
string... This made the server get an additional byte on the next call
to PR_Recv...


My question is:
"Why was this additional byte not recieved in the first call to
PR_Recieve itself??? How does this extra packet come into the
picture...??"

Warm Regards,
D3|\||\|!$
_______________________________________________
dev-tech-crypto mailing list
dev-tech-crypto@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-crypto

Reply via email to