Async TCP mangler svar fra server
HejJeg har lavet en klasse der kommunikerer men en host via. async TCP kald.
Det virker ok bortset fra hvis der feks. skal tastes noget på hosten får jeg ikke svar før end at jeg sender noget nyt til hosten.
Feks.
Client <-> Host
Hvad er klokken ->
<- 10:55
Tast et 123 og tryk enter->
//Nu kommer der ikke noget når trykkes enter
Hvad er klokken ->
<- 123
<- 11:15
Svaret på "Tast et 123 og tryk enter" kommer altså først på min næste forespørsel.
Jeg kan løse det en BeginReceive i min ReceiveData
void ReceiveData(IAsyncResult iar) {
try {
StateObject so = (StateObject)iar.AsyncState;
int recv = so.WorkSocket.EndReceive( iar );
List<byte> rec = new List<byte>( so.Data );
OnDataReceived( rec.GetRange( 0, recv ).ToArray() );
so.WorkSocket.BeginReceive( so.Data, 0, so.Data.Length, SocketFlags.None, new AsyncCallback( ReceiveData ), so );
} catch( Exception ex ) {
OnError( "ReceiveData error:" + ex.Message );
}
}
Men hvis der udføres et kald der ikke skal returnerer noget får jeg lagt en BeginReceive i "kø".
Vil det ikke give mig et problem på sigt
