C# Socket.BeginSend AsyncCallback behavior (timeout?)

Posted by mdarsigny on Stack Overflow See other posts from Stack Overflow or by mdarsigny
Published on 2010-03-18T22:24:48Z Indexed on 2010/03/18 23:01 UTC
Read the original article Hit count: 1428

Filed under:
|
|

Hi guys,

Here is a scenario with asynchronous sockets that I dont't quite understand... I have 2 Tcp sockets, a client socket & a server socket. My server socket is bound & listening on a port.

My client sockets connect to the server socket (using BeginConnect / EndConnect). I then send a message to the server using BeginSend(). On the server side, I don't do a Receive() or BeginReceive().

What happens is that my AsyncCallback specified for my BeginSend call gets invoked & its IAsyncResult tells me that it completed & the call to Socket.EndSend() does not raise any exception...

Is there something that I don't get or shouldn't my AsyncCallback be called only if the BeginSend call actually sends something to the server (ie.: callback called after the server has received all bytes)? If there was no receive done on the server, shouldn't my callback be called after the sendtimeout expires and my call to Socket.EndSend then would raise an exception?

Thanks

© Stack Overflow or respective owner

Related posts about c#

Related posts about socket