![]() |
Routerproblem
Hi. Ich hab mit meinem Freund n kleines Prog gemacht das über internet nachrichten sendet.
Ich habe Router und er isdn. So wenn ich jetzt bei mir den ServerSocket über port 80 laufen habe kann er problemlos connecten und ich bekomme die nachticht. Allerdings kann ich nicht zu ihm connecten, und wenn ich als server versuche auch ne nachricht zu senden, dann kommt ein socketfehler der sagt, dass der server nicht verbunden ist? Was muss ich jetz am Router umstellen und warum kann ich als server nicht zurücksenden? |
Re: Routerproblem
du musst auf deinem router den port forwarden, ich würde dazu aber nicht 80 verwenden sondern irgendwas >1000
das es soweit geht ist mir unerklärlich, ich wäre davon ausgegangen dass es gar nicht funktioniert nimm nen seperaten port, so is die sache am saubersten MfG tn249 |
Re: Routerproblem
Hmm nimm vielleicht mal nen anderen Port als 80 und dann richte bei deinem Router eine Portweiterleitung für diesen Port ein. Ich hoff dass funktioniert ;-)
[edit] mist....wieder einer schneller :D[/edit] |
Re: Routerproblem
Du musst in deinem Router-Konfigurations-Programm den Port auf dem ihr sendet forwarden ;-)
|
Re: Routerproblem
Also die Ports sind schon frei.
Habe jetz mal versucht mit mir selbst (127.0.0.1) zu verbinden über port 137 und 4662 aber es kommt der gleiche fehler. |
Re: Routerproblem
Also ich denke, wenn du dich mit localhost (127.0.0.1) verbindest, geht das gar nicht über den Router, hat also auch nichts mit Portweiterleitung zu tun. Ich nehm deshalb mal an, dass an deinem Programmcode was nicht stimmt. Hast du schon mal probiert das ganze in der Delphi-IDE laufen zu lassen? Du kannst ja auch mal den Code hier posten...
MFG Sergej |
Re: Routerproblem
Oh mit meiner internen IP klappts auch nicht (192.168....)
|
Re: Routerproblem
dann poste mal deinen Programmcode...sonst ist das alles ein wenig abstrakt ;-)
|
Re: Routerproblem
ein ping an meine eigene ip wird nich vom netzwerksniffer erkannt
ich denke dass die auch real nich im netzwerk auftaucht sondern von der netzwerkkarte oder vom system(winxp) simuliert wird MfG tn249 edit: wichtigste vergessen: wahrscheinlich kann man dadurch darauf schließen, dass sämtliche anfragen an die eigene ip nicht aufs netzwerk gelegt werden(zumindest bei meiner konfiguration :-D ) |
Re: Routerproblem
Ja aber übers netz klappts ja auch nicht
|
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 16:10 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