Hi,
das Ereigniss OnClientRead gibt es! Bei TServerSocket.
Und in der Procedure kennt er auch "Socket". In moment kann ich leider kein Beispiel-Programm schreiben, weil ich in Dortmund bin. Und ich habe hier kein Delphi! Montag oder Dienstag währe es kein Problem.
Aber du kannst dir ja paar Socket Tutorials durchlesen.
Meine Page ist leider noch nicht Online, aber wie z.b. auf
www.delphi-treff.de gibt es ein Socket Tutorial. Und ich glaube nicht, das man ein Beispiel-Programm braucht. Hier ein Code (kann ihn nicht testen, wird aber 100% funktionieren. So schwer ist das ja nicht):
Delphi-Quellcode:
{Platzier 4 TButtons auf das Formular. Und 1 TClientSocket und 1 TServerSocket }
Procedure TForm1.Button1Click(Sender: TObject);
{Button1}
Begin
ShowMessage ('
Button1');
If ClientSocket1.Active:=True
Then //Prüfen ob ClientSocket active ist
ClientSocket1.Socket.SendText ('
Button1');
End;
Procedure TForm1.Button2Click(Sender: TObject);
{Button2}
Begin
ShowMessage ('
Button2');
If ClientSocket1.Active:=True
Then //Prüfen ob ClientSocket active ist
ClientSocket1.Socket.SendText ('
Button2');
End;
Procedure TForm1.Button3Click(Sender: TObject);
{Button3}
Begin
ShowMessage ('
Button3');
If ClientSocket1.Active:=True
Then //Prüfen ob ClientSocket active ist
ClientSocket1.Socket.SendText ('
Button3');
End;
Procedure TForm1.FormCreate(Sender: TObject);
{Formular "OnCreate"}
Begin
{Diese Einstellungen wenn möglich schon in Objektinspektor
einstellen um den Quelltext zu pflegen.}
ServerSocket1.Port:=5810;
ClientSocket1.Port:=5810;
{Wichtig ist das ServerSocket und ClientSocket den gleichen Port
haben.}
ServerSocket1.Active:=True;
{Drauf achten, das ServerSocket als 1 geöffnet wird!}
End;
Procedure TForm1.Button4Click(Sender: TObject);
{Connect Button}
Begin
ClientSocket1.Address:='
127.0.0.1';
//IP
ClientSocket1.Active:=True;
//Verbindung herstellen
End;
Procedure TForm1.ServerSocketClientRead (Sender: TObject; Socket: TCustomWinSocket);
{ServerSocket - OnClientRead.}
var s:
String //String Variable - Local deklariert.
Begin
{Bin mir nicht ganz sicher ob das hier so richtig ist die Procedure.
Aber das spielt ja keine Rolle. KLick einfach auf ServerSocket bei
Ereignisse Doppelklick auf OnClientRead ;) }
s:=Socket.ReceiveText;
If s='
Button1'
Then
Button1Click(Sender);
//Button1 Klicken
If s='
Button2'
Then
Button2Click(Sender);
//Button2 Klicken
If s='
Button3'
Then
Button3Click(Sender);
//Button3 Klicken
end;
So das wars (Habe den Code ausen Kopf geschrieben
) Das sollte man eigendlich verstehen.
MFG
Sven!