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 

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?


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