Einzelnen Beitrag anzeigen

Benutzerbild von FastJack2
FastJack2

Registriert seit: 22. Mär 2004
Ort: Lübeck
54 Beiträge
 
Delphi 7 Enterprise
 
#16

Re: TCP-Chat-Client hängt sich auf ..

  Alt 24. Mär 2004, 09:55
also ich hab das folgendermassen gelöst:

aber bevor ich anfange noch ein punkt...

Code:
    srv: TIdTCPServer;
    cli: TIdTCPClient;
damit der code verständlich wird ;)

client-send code:
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
begin
  cli.OpenWriteBuffer;
  cli.WriteInteger(length('hello'));
  cli.Write('hello');
  cli.CloseWriteBuffer;
end;

server-code:
Delphi-Quellcode:
procedure TForm1.srvExecute(AThread: TIdPeerThread);
var
  tmp: string;
begin
  tmp := athread.Connection.ReadString(athread.Connection.ReadInteger);
  if tmp = 'hellothen
  begin
    AThread.Connection.WriteInteger(length('helloagain'));
    AThread.Connection.Write('helloagain');
  end;
end;

client receive code:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var
  tmp: string;
begin
  if cli.Connected then
  begin
    cli.ReadTimeout := 10; // WICHTIG !!! sonst hängt er sich auf ...
    try
      tmp := cli.ReadLn;
      if length(tmp) > 0 then
        showmessage(tmp);
    except
      //
    end;
  end;
end;

gibt dabei nur ein problem ...
jedes mal wenn der timer ausgelöst wird und keine daten zum client gesendet wurden, wird eine exception ausgelöst ... sehr nerfig, wenn der timer auf 100 steht *fg*
also hab ich zum testen des projekts die delphi-exceptions ausgeschaltet ...
auch nicht die beste methode aber was anderes kommt mir jetzt nicht in den sinn...

greetz
-FastJack2
wo unrecht zu recht wird, wird widerstand zur pflicht ! (c) '98 - WoF board
  Mit Zitat antworten Zitat