Hi all,

I am using BDS2006 to write a service application that creates a 
TWSocketServer and waits for connections.  When a connection is made, 
the client sends requests and the service processes the requests and 
returns the results.

This is all being done with LineMode enabled.

I've written a similar module in another application recently and that 
went without a hitch.

In this particular case (using code copied from the other application), 
in OnDataAvailable for the TWSocketClient I type cast the Sender to a 
TWSocketClient and then call ReceiveStr to retrieve the data.  This was 
resulting in an empty string, despite the fact that by inspecting the 
object I could see there is data in the receive buffer.  Further 
investigation/testing has revealed that I'm getting error 10035 
(operation would block) and wondered why this would happen now and not 
previously.

The only thing I can think of that I'm doing different is that the 
testing is being done on one machine, whereas I don't think I did that 
previously.  However, I have tested this application with the client on 
another machine and it exhibits the same problem.

Another thing I noticed is that if I do:
      AnsiString msg = ((TWSocketClient*)Sender)->ReceiveStr();
at the start of the OnDataAvailable event, then I get the data coming 
through.  But I believe (based on the existing application that works) 
that I should be able to typecast the Sender variable first.

Does anyone have any suggestions about what might be going wrong here?

Regards,

Bevan Edwards

-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be

Reply via email to