Autor Beitrag
Boogi
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Fr 25.11.05 20:25 
Hi,

wenn mehrere Clients mit einem Server verbunden sind kann ich die ja beim versenden über
ausblenden Delphi-Quelltext
1:
ServerSocket.Socket.Connections[NrDesClient].Sendirgendwas();					

auseinanderhalten.

Aber:
wenn ein Client sendet kommt alles im
ausblenden Delphi-Quelltext
1:
TNetEngine.ServerClientRead(Sender: TObject; Socket: TCustomWinSocket);					

an.

Da wird zwar "Socket" mit übergeben, aber ich seh einfach net, wie ich da "NrDesClient" rauskriegen soll? So alla:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
Procedure TNetEngine.ServerSocket.ServerClientRead(Sender: TObject; Socket: TCustomWinSocket);
Begin
  // rausfinden wer geschrieben hat
  NrDesClient := ????
  // evtl. Daten empfangen und verarbeiten

  // nur dem, der gesendet hat zurückschreiben
  ServerSocket.Socket.Connections[NrDesClient].Sendtext('blabla');
End;


Gruß Steffen

PS.: gibts irgendwo n Tut für die ServerSocket/ClientSocket wo nich nur so einfache 1vs1 chats gemacht werden?
PPS.: Die Hilfe in Delphi zu dem Thema find ich schrecklich. Zig verschieden unterschiedliche Socket Klassen die dann alle irgendwie ineinander verschachtelt werden. Wenn ich net genau weis, was ich such steh ich da voll auf verlorenem Posten.
Marco D.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2750

Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
BeitragVerfasst: Fr 25.11.05 21:27 
Hi.

Ich hatte das Prob auch mal.
Eine Lösungsmöglichkeit:

Ich weiß ja nicht wie deine Kenntnisse so sind, aber ich hab, als sich der CLient verbunden hat, einen String vom Clietn an den Server senden lassen, der den Computernamen des CLients enthielt. Und dann diesen in eine Listbox geschrieben. Kannst auch eine Stringlist nehmen. Du könntest dann wenn der Client was senden den Computernamen mitschicken, den auslesen und in der Listbox/Stringlist nach diesem suchen. Dort wo der Compuername steht, von diesem Eintrag der Index. DIeser ist gleich dem Index des Clientsockets der gesendet hat.

So, klar? :wink:

_________________
Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot