AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi ClientSocket steam verschicken mit vorherigen Zeichen
Thema durchsuchen
Ansicht
Themen-Optionen

ClientSocket steam verschicken mit vorherigen Zeichen

Ein Thema von gandime · begonnen am 26. Jan 2008 · letzter Beitrag vom 27. Jan 2008
 
gandime
(Gast)

n/a Beiträge
 
#13

Re: ClientSocket steam verschicken mit vorherigen Zeichen

  Alt 27. Jan 2008, 13:51
Die Procedure von oben ist schon etwas älter und überholt hatte nich wieder rübergeguckt.
Hab mir jetzt mal eine andere überlegt und zwar werden als erste paar zeichen die Länge des Strings geschickt usw guckt selber
Delphi-Quellcode:
procedure TForm1.send(s_text:string);
var
  s_length:string;
  i_length:integer;
begin
  i_length:=length(s_text);
  if i_length<10 then
  begin
    s_length:='000'+inttostr(i_length);
  end
  else if i_length<100 then
  begin
    s_length:='00'+inttostr(i_length);
  end
  else if i_length<100 then
  begin
    s_length:='0'+inttostr(i_length);
  end
  else
  begin
    s_length:=inttostr(i_length);
  end;
  cs.Socket.SendText(s_length+s_text);
end;

procedure TForm1.ssClientRead(Sender: TObject; Socket: TCustomWinSocket);
var
  s_receive,s_length,s_command:string;
  i_length:integer;
begin
  if length(s_buff)+socket.ReceiveLength>=4 then
  begin
    s_receive:=s_buff+socket.ReceiveText;
    s_length:=s_Receive;
    setlength(s_length,4);
    i_length:=strtoint(s_length);
    if length(s_receive)-4>=i_length then
    begin
      s_receive:=copy(s_receive,4+1,length(s_receive));
      s_command:=s_receive;
      setlength(s_command,i_length);
      s_buff:=copy(s_receive,i_length+1,length(s_receive));
      //und dann halt auswerten
    end
    else
    begin
      s_buff:=s_receive;
    end;
  end
  else
  begin
    s_buff:=s_buff+socket.ReceiveText;
  end;
end;
jetzt wollte ich fragen ob es zu Komplikationen kommen kann?
wenn z.B. der Server ein falschen Start String bekommt wie finde ich dann den nächsten anfang?
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz