CSocket, best way to wait for a reply?
- From: "simon" <spambucket@xxxxxxxxxxxx>
- Date: Wed, 6 Apr 2005 20:37:58 +0100
Hi,
I have a 'client' and a 'server', (both the same sub-classes of CSocket).
Basically the client sends a message to the server and in turn the server
sends a message back to the client.
I allow a few seconds for the server to reply back to the client. Ideally it
should not take more than a few milliseconds.
The client waits for it's reply, (recognized by a special header in the
message).
So what I have is a function that does something like...
void MyMessage( void *pData, int nSize )
{
pMySocket->Send( pData, nSize );
// wait for a reply from the server
while( pMySocket->pReplyBuffer == NULL ){
sleep(0); // give time back to the queue
// wait for a few seconds only
}
// either timeout or no reply sent
}
// The server then receives the message sent
// sends a reply back to the client
// who in turn fills the void *pReplyBuffer
//
// once "pReplyBuffer" is no longer NULL I know that data has returned.
But I have 2 problems
1) As you can see the wait is totally inadequate. it hangs the system. So
what would be the best way to wait for a few seconds?
What I am doing now is ::PeekMessage( &msg, 0, 0, PR_REMOVE), but I don't
feel good handling ALL the messages that way.
PeekMessages only for socket ones does not seem to work and still causes the
system to hang.
2) Sometimes the Send(..) -> (who then calls the SendChunk() function),
simply hangs and waits forever for the PumpMessages(FD_WRITE) to return.
What could I be doing wrong.
Many thanks
Simon
.
- Follow-Ups:
- Re: CSocket, best way to wait for a reply?
- From: Joseph M . Newcomer
- Re: CSocket, best way to wait for a reply?
- From: Mubashir Khan
- Re: CSocket, best way to wait for a reply?
- From: Scott McPhillips [MVP]
- Re: CSocket, best way to wait for a reply?
- From: Michael K. O'Neill
- Re: CSocket, best way to wait for a reply?
- From: AliR
- Re: CSocket, best way to wait for a reply?
- Prev by Date: Re: when and how do the the system inform the CFormView to redraw ?
- Next by Date: Re: Graphing Variables
- Previous by thread: IMimeMessage interface
- Next by thread: Re: CSocket, best way to wait for a reply?
- Index(es):
Relevant Pages
|