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