![]() |
Re: Routerproblem
Server:
Code:
Client
implementation
{$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin Server.Port := 4662; Server.Active := True; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin Server.Active := False; end; procedure TForm1.Button1Click(Sender: TObject); begin Server.Socket.SendText(Edit1.Text); end; procedure TForm1.ServerClientRead(Sender: TObject; Socket: TCustomWinSocket); begin Memo1.Lines.Add(Socket.ReceiveText) end; end.
Code:
implementation
{$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin Client.Host := '254.254.254.254'; Client.Port := 4662; Client.Active := True; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin Client.Active := False; end; procedure TForm1.Button2Click(Sender: TObject); begin Client.Socket.SendText(Edit1.Text) end; procedure TForm1.ClientRead(Sender: TObject; Socket: TCustomWinSocket); begin Memo1.Lines.Add(Socket.ReceiveText) end; end. |
Re: Routerproblem
Zitat:
MfG tn249 |
Re: Routerproblem
Gut danke das klappt bestens :-D
Allerdings hab ich immer noch das Problem dass ich nicht Client sein kann was zwar nichts macht, da ich immer server sein könnte, aber es regt mich trotzdem auf. Wie gesagt, alle Ports sind frei für Rein und für Raus. |
Re: Routerproblem
das ->254.254.254.254<- ist deine IP? :? Bist du dir sicher das es klappt wenn dein freund als Server fungiert und dir eine Nachricht schickt? Denn mit
Delphi-Quellcode:
sollte das eigentlich nicht funktionieren.
Server.Socket.SendText(Edit1.Text);
Dir sollte bewusst sein das zu einem Server mehrere Clients verbinden können und über deinen Quelltext wäre es ja gar nicht möglich einzelnen Clients zu antworten (du gibst ja schließlich nirgends was an was den Client spezifizieren würde). Spätestens an dieser Stelle müsstest du also schon stutzig geworden sein das der Quelltext nicht stimmen kann. probiers mal mit
Delphi-Quellcode:
Die 0 steht hierbei für die Verbindung mit dem Index 0. Wenn also mindestens ein Client verbunden ist kannst du somit an den Client-0 eine Nachricht schicken. Wenn 2 Clients verbunden wären könntest du mit
ServerSocket1.Socket.Connections[0].SendText(Edit1.Text);
Delphi-Quellcode:
eine Nachricht an den zweiten client schicken.
ServerSocket1.Socket.Connections[1].SendText(Edit1.Text);
|
Re: Routerproblem
Ok danke. Die Ip ist natürlich nur erfunden und soll meine dynamische halt ersetzen :-D
Kann ich denn Informationen mitsenden, von welchem Client gesendet wurde? Und dann halt nur an den entsprechenden zurücksenden? Das Problem mit der Verbindung zu ihm besteht übrigens immer noch :cry: Hoffentlich weis das noch einer. <edit>Oder einfach so ?
Code:
</edit>
Server.Socket.Connections[Socket].SendText('Text');
|
Re: Routerproblem
im "ServerClientRead" bekommst du den Parameter "Socket" des sendenen Clients. Wenn du dir diesen merkst kannst du dann auch über
Delphi-Quellcode:
an diesen zurück senden.
GemerkterSocket.SendText(Edit1.Text);
Und wenn du das ganze nur mit einem Client machst kannst du auch einfach das ganze dem "Connection[0]", wie schon beschrieben, realisieren |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz