<div dir="ltr"><div class="gmail_default" style="font-family:monospace,monospace;font-size:large">Hi All,</div><div class="gmail_default" style="font-family:monospace,monospace;font-size:large"><br></div><div class="gmail_default" style="font-family:monospace,monospace;font-size:large">I try to write a tcp client program, and found this page:</div><div class="gmail_default" style="font-family:monospace,monospace;font-size:large"><br></div><div class="gmail_default" style><font face="monospace, monospace" size="4"><a href="http://pascalgeek.blogspot.com/2012/06/encryption-decryption-and-asynchronous.html">http://pascalgeek.blogspot.com/2012/06/encryption-decryption-and-asynchronous.html</a></font></div><div class="gmail_default" style><font face="monospace, monospace" size="4"><br></font></div><div class="gmail_default" style><font face="monospace, monospace" size="4">which is the only resource I found using fcl-net.</font></div><div class="gmail_default" style><font face="monospace, monospace" size="4"><br></font></div><div class="gmail_default" style><font face="monospace, monospace" size="4">But there is a big problem: it did not tell how to receive message back from the server.</font></div><div class="gmail_default" style><font face="monospace, monospace" size="4"><br></font></div><div class="gmail_default" style><font face="monospace, monospace" size="4">I tried to write something like:</font></div><div class="gmail_default" style><font face="monospace, monospace" size="4"><br></font></div><div class="gmail_default" style><font face="monospace, monospace" size="4"><div class="gmail_default">    EventLoop.Run;</div><div class="gmail_default">    while true do begin</div><div class="gmail_default">      Stream.WriteAnsiString('Hello');</div><div class="gmail_default">      WriteLn('Server Reply: ' + Stream.ReadAnsiString); </div><div class="gmail_default">      Sleep(1000);</div><div class="gmail_default">    end;</div><div class="gmail_default">    //Active := false;</div><div class="gmail_default"></div><div class="gmail_default">And at the server side, </div><div class="gmail_default"><br></div><div class="gmail_default"><div class="gmail_default">      Msg := FClientStream.ReadAnsiString;</div><div class="gmail_default">      WriteLn(AddrToString(FClientStream.PeerAddress) + ': ' + Msg); </div><div class="gmail_default">      FClientStream.WriteAnsiString('World!');   //added by me</div><div class="gmail_default"><br></div><div class="gmail_default">It simply generated a runtime error: EReadError : Stream read error</div><div><br></div><div>As a matter of fact, I also tried to create a thread like this:</div><div><br></div><div><div>procedure TMyTCPClient.ConnStateChanged(Sender: TClientConnectionSocket;</div><div>  OldState, NewState: TConnectionState);</div><div>begin</div><div>  if NewState = connConnected then begin</div><div>    WriteLn('Connected!');</div><div>    TMsgReceiver.Create(Stream);</div><div>  end;</div><div>end;</div><div><br></div><div><div>constructor TMyTCPClient.TMsgReceiver.Create(AStream: TSocketStream);</div><div>begin</div><div>  inherited Create(False);</div><div>  FStream := AStream;</div><div>  FreeOnTerminate := True;</div><div>end;</div><div><br></div><div>procedure TMyTCPClient.TMsgReceiver.Execute;</div><div>var</div><div>  s: string;</div><div>begin</div><div>  while True do begin</div><div>    WriteLn('Now try to receive something...');</div><div>    s := FStream.ReadAnsiString;</div><div>    WriteLn('Received: ', s);</div><div>  end;</div><div>end;</div><div><br></div><div>But it did not receive anything!</div><div><br></div><div>How can I enable **bi-directional**, asynchronous (event driven) communication using fcl-net, also, is there any document on fpasync??</div><div><br></div><div>Thanks a lot!</div><div><br></div><div>xrfang</div><div></div></div><div></div></div></div></font></div><div class="gmail_default" style="font-family:monospace,monospace;font-size:large"><br></div><div class="gmail_default" style="font-family:monospace,monospace;font-size:large"><br></div><div><div class="gmail_signature"><div dir="ltr"><br></div></div></div>
</div>