Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi tserversocket onclientread probleme (https://www.delphipraxis.net/82908-tserversocket-onclientread-probleme.html)

gandime 21. Dez 2006 22:09


tserversocket onclientread probleme
 
hi,
ich hab nen problem und zwar möchte ich eine stringlist via tclientsocket an den server verschicken dafür hab ich mir auch nen code geschrieben:

Delphi-Quellcode:
sc_handler:tclientsocket;
...
var sl_temp:tstringlist;
  sl_temp.add(a);
  sl_temp.add(b);
  sl_temp.add(c);
  for I := 0 to sl_temp.Count - 1 do
  begin
    cs_handler.Socket.SendText(sl_temp[i]);
  end;
so aber beim server kommt dann die ganze stringlist aneinandergereit in einem string an

warum?

meine server procedure:
Delphi-Quellcode:
procedure Tfrm_sockets.cs_handlerClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  s_line:=Socket.ReceiveText;
...
end;
die clientread procedure wird blos einmal ausgeführt und das ergebis is dann
s_line='abc'

jokerfacehro 21. Dez 2006 22:43

Re: tserversocket onclientread probleme
 
mach nach jedem array eintrag einen zeilenumbruch,
das sendest du dann an den server, nachdem der server das ganze erhalten hat
pflückst du einfach den kompletten string anhand der zeilenumbrüche auseinander ;)

allerdings wurde das schon sehr oft durchgekaut und es gibt schon einige schöne funktionen die dir das alles abnehmen, musst nur noch suchen xD

:wiejetzt: ja genau :wall:

gandime 21. Dez 2006 22:50

Re: tserversocket onclientread probleme
 
ja supa... das is alles etwas komisch

habs gemacht:
Delphi-Quellcode:
var sl_temp:tstringlist;
  sl_temp.add(a);
  sl_temp.add();
  sl_temp.add(b);
  sl_temp.add();
  sl_temp.add(c);
  for I := 0 to sl_temp.Count - 1 do
  begin
    cs_handler.Socket.SendText(sl_temp[i]);
  end;
dasergebnis is:
s_line:='abc'

ohne zeilenburuch oder ähnliches...

edit:
und hier im forum hab ich nichts darüber gefunden von wegen server/clientsocket stringlist verschicken

Muetze1 22. Dez 2006 00:17

Re: tserversocket onclientread probleme
 
Was hier schon öfters durchgekaut wurde, ist der Umstand, dass die Sockets die Daten einfach übertragen. Dass du das Format verstehst bzw. in richtige Teile zerlegt werden, dass ist deine Aufgabe. Mit anderen Worten: Denk dir ein Protokoll aus.

Siehe dazu u.a. hier.

gandime 22. Dez 2006 07:45

Re: tserversocket onclientread probleme
 
joo danke hat mir sehr geholfen und meine fragen beantwirtet

oki 22. Dez 2006 07:46

Re: tserversocket onclientread probleme
 
Hi,

mach nur das
Delphi-Quellcode:
cs_handler.Socket.SendText(sl_temp.text);
ohne Schleife und alles. Dann werden alle CR mit übertragen. auf der Client-seite kannst du dann den empfangenen String einer StringList.text zuweisen und alles ist im grünen bereich.

Denk aber daran, dass du auf den gesamten Text warten mußt bevor du hier (Client) zuweist. Aber das Thema ist dann wie vorher benannt an anderer Stelle zu erörtern. hier ging es ja um die Zeilen.

Gruß oki


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz