Autor Beitrag
Toastbrotbaby
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 98



BeitragVerfasst: Mi 03.01.07 16:55 
Moin,

Nachdem ich nun mehrere probs hatte und das irgendwie nie so verbinden wollte und miteinander kommunizieren wollte ich klappte das heute endlich. Keine ahnung wieso aber es ist schon mal ein anfang.

Meine Frage:

mit
ausblenden Delphi-Quelltext
1:
Form4.ClientSocket1.Socket.SendText(Panel2.Caption)					


sende ich ja das was in Panel2 steht. soweit ist noch alles klar.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
  var
    MyMessage: String;
begin
  MyMessage := Socket.ReceiveText;
  Log.Lines.Add(MyMessage); 
end;


und die prozedur fängt das ganze ja an dem serverteil ab


nun wird das abgefangene ja in der variable MyMessage gespeichert. Und mein problem in dem fall ist nun das ich aber 2 empfänger variablen brauche da 2 verschiedene informationspakete gesendet werden sollen.

das erste informationspaket soll prinzipiell nur eine information sein die zb dargestellt werden soll.

und das 2. paket soll nach möglichkeit ereignisse steuern. Aber wenn ich dies nun in der selben variable habe würde ja nur eine möglichkeit funktionieren, oder habe ich grad irgendwo einen denkfehler drin.

bin grad echt planlos und mir fällt dazu grad nicht ein wie ich das entsprechend umsetze...

hoffe irgendwer hat ne idee :)

Gruss
Toasti
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 03.01.07 17:35 
Moin!

Hier ist ein FAQ-Beitrag, der dein Problem noch etwas näher beschreibt, und hier ist die Lösung. ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Toastbrotbaby Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 98



BeitragVerfasst: Mi 03.01.07 17:37 
So ...

hatte nun doch noch ne kleine idee zwischendurch.

Habe es jetzt so realisiert das einfach die informationen in entsprechender reihenfolge nacheinander gesendet werden müssen und beim server hab ich das ganze per case of dann weiterverarbeitet ...

jetzt werden praktisch nur noch zahlen von 0 - .. gesendet und die informationen werden weiter verarbeitet.

funktioniert, nur halt muss es wohl in der richtigen reihenfolge passieren :)

wenn wer noch was besseres parat hat bin für alles offen

Danke

Gruss
Toasti
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 03.01.07 18:52 
Moin!

user profile iconToastbrotbaby hat folgendes geschrieben:
Habe es jetzt so realisiert das einfach die informationen in entsprechender reihenfolge nacheinander gesendet werden müssen

Dabei verwendest du aber nicht die einzelnen OnRead-Ereignisse zum Trennen der Datenpakete, oder? :? Falls doch, dann möchte ich anmerken, dass das nur zufällig klappt; warum, steht im FAQ-Beitrag, s.o. ;)

Viel Erfolg noch,

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Toastbrotbaby Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 98



BeitragVerfasst: Mi 03.01.07 19:01 
nein dabei verwende ich nur das senden von einfachen zahlen die wie in deinem anfänger tut beschrieben gesendet und empfangen werden, in eine variable gespeichert und von dort aus weiter verarbeitet werden ...

ich zeig dir was ich tat ...


ausblenden 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:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var
i: String;
begin
  i := Socket.ReceiveText;
begin
case StrtoInt(i) of
0: Timer1.Enabled := False;
1: Timer1.Enabled := True;
2: label2.Caption := (a);
3: Label2.Caption := (b);
4: Label2.Caption := (c);
5: Label2.Caption := (d);
6: Label2.Caption := (e);
7: Label2.Caption := (f);
8: Label2.Caption := (g);
9: Label2.Caption := (h);
10: Label2.Caption := (j);
11: Label2.Caption := (k);
12: Label2.Caption := (l);
end;
end;
end;


setzt im prinzip das um was ich wollte ... jedenfalls war es eben in einem minitest so ...
ich habs vorerst zum testen so gemacht, hatte bei einem flüchtigen blick die befürchtung das ich mich intensiver mit deinen tutorial beschäftien muss als ich grad den nerv habe, zumal es wie gesagt grad so funzte.

Habe jetzt im Client mehrere Buttons die die Sendeprozedur ausführen und verschiedene werte senden. Sprich 1-12 ... und der server nimmt diese informationen und führt entsprechende ereignisse aus.

Weiss so direkt nicht ob deine variante eleganter ist, aber ich würde spontan behaupten ja ... :)


EDIT: Die Inhalte der Variablen ist in .ini files gespeichert und kann je nach bedarf vorher geladen werden, ansonsten sind erstmal alle variablen mit 00:00:00 versehen

werde mich auf jedenfall morgen mal intensiver mit deinem tut beschäftigen :)

Gruss
Toast
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 03.01.07 19:07 
Moin!

user profile iconToastbrotbaby hat folgendes geschrieben:
ich zeig dir was ich tat ...

Der Code oben hat auf jeden Fall das angesprochene Datenpaket-Problem. :| Sorry... :? ;)

user profile iconToastbrotbaby hat folgendes geschrieben:
zumal es wie gesagt grad so funzte.

Wie schon gesagt, nur zufällig. :(

user profile iconToastbrotbaby hat folgendes geschrieben:
werde mich auf jedenfall morgen mal intensiver mit deinem tut beschäftigen :)

Du wirst es sicher nicht bereuen. :D

cu
Narses

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