Autor Beitrag
Counter909
Hält's aus hier
Beiträge: 1



BeitragVerfasst: So 10.08.08 15:29 
HI


also ich habe ein kleines Programm geschrieben, was im Netzwerk nun als erstes einem ermöglicht zu Chatten. Das hab ich mit Tserversocket und Tclientsocket alles programmiert und gab auch weiter keine Probleme.
Jetzt möchte ich dieses Programm natürlich noch etwas ausschmücken und immer erweitern, Könnte langsam einem Remote Administration Tool innerhalb eines Netzwerkes ähneln. Doch jetzt hab ich überall Probleme, wo es darum geht, wenn ich einen Befehl dem Server schicke, der dann z.B eine Funktion ausführt. (z.B. die Laufwerksbuchstaben ermitteln) und dann das Ergebnis zurückgeschickt werden soll....
in diesem Moment werden ja mehrere Strings zurückgeschickt und kann deshalb nicht mit sendtext, etc arbeiten. Wie muss ich denn da vorgehen, damit vom server alle ergebnisse "zusammengepackt" werden und ich sie mit dem Client dann wieder "zerlegen" und zum Beispiel in eine Listview wiedergeben kann ???

vllt. kann das einer an Hand der Laufwerksbuchstaben erklären.

Der Client sendet also ein Befehl:
ausblenden Delphi-Quelltext
1:
socket.sendtext('laufwerbuchstaben');					


Der Server erhält die Nachricht:
ausblenden Delphi-Quelltext
1:
socket.receivetext;					


und nun wird die Funktion ausgeführt:
result= a,b,c,d,h,j /das sind jetzt meinetwegen die Laufwerksbuchstaben


wie werden die jetzt zurückgeschickt, damit ich sie beim client gut darstellen kann ?



mfg
counter

Moderiert von user profile iconChristian S.: Delphi-Tags hinzugefügt
Sinspin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1338
Erhaltene Danke: 120

Win 10
RIO, CE, Lazarus
BeitragVerfasst: So 10.08.08 17:08 
Hi und :welcome: in der EE.

Ich verstehe gerade nicht, was daran so schwehr sein soll mehr als einen String als Antowrt zurück zu senden. Entweder sendest du halt alles nacheiander via SendText schließlich muss eine Antwort ja nicht immer nur aus einem SendText bestehen.
Oder du hängst einfach alle Strings aneinander. Was eingentlich ganz komfortabel über eine Stringliste geht.

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
// Serverseitig
procedure SendAll;
var
  sl: TStringListe;

begin
  sl := TStringList.Create;
  try
    sl.Add('A');
    sl.Add('B');
    sl.Add('C');
    server.SendText(sl.Text);
  finally
    sl.Free;
  end;
end;

// Clientseitig
procedure GetAll(aReceivedText: string);
var
  sl: TStringListe;

begin
  sl := TStringList.Create;
  try
    sl.Text := aReceivedText;
    sl.Strings[0// 'A'
    sl.Strings[1// 'B'
    sl.Strings[2// 'C'
  finally
    sl.Free;
  end;
end;


Auf diese Art sind alle Daten mit einem String gekommen und können gut weiterverarbeitet werden.

_________________
Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
Marc.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: So 10.08.08 18:26 
Hey! Hast Du Dir das Chat-Tutorial von user profile iconNarses einmal angesehen? Ich denke das könnte Dir eventuell weiterhelfen. :zwinker:

Grüße,
Marc.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: So 10.08.08 23:18 
Moin!

user profile iconSinspin hat folgendes geschrieben:
Oder du hängst einfach alle Strings aneinander. Was eingentlich ganz komfortabel über eine Stringliste geht.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
// Serverseitig
  sl := TStringList.Create;
  try
    sl.Add('A');
    sl.Add('B');
    sl.Add('C');
    server.SendText(sl.Text);
Auf diese Art sind alle Daten mit einem String gekommen und können gut weiterverarbeitet werden.
Achtung! Das klappt nur, wenn sl.Text kleiner als 8KB ist. :idea:

Eine davon unabhängige Lösung ist ein Protokoll, aber das entsprechende Tut ist ja schon oben gelinked. ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.