Laden...

TcpClient keine Verbindung zu TcpListener trotz offenem Port

Erstellt von jansenpeter vor 10 Jahren Letzter Beitrag vor 10 Jahren 2.172 Views
J
jansenpeter Themenstarter:in
38 Beiträge seit 2013
vor 10 Jahren
TcpClient keine Verbindung zu TcpListener trotz offenem Port

Hi,

und zwar macht mir mein Netzwerk-Server zu schaffen, er läuft und ich habe den Port den er benutzt (10.000) sowohl in meiner Firewall, als auch in meinem Router freigegeben.

Auf meine IP greift der Client über ne noip-Verlinkung zu. Trotzdem bekomm ich keine Verbindung zustande weil der Client mir dauernd ne Fehlermeldung schmeißt in der es heißt das der Server n Timeout hat, bzw. nicht antwortet.

Was heißen müsste, das die Ausgehenden Verbindungen des Servers geblockt werden.

Jemand eine Idee?

  • Zensiert -
2.298 Beiträge seit 2010
vor 10 Jahren

Funktioniert die Verbindung, wenn du den Client lokal im Netzwerk / auf deinem Rechner ausführst?
Wie ist die genaue Fehlermeldung?

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

J
jansenpeter Themenstarter:in
38 Beiträge seit 2013
vor 10 Jahren

Lokal funktioniert das ganze, aber auch nur mit der lokalen IP.

Sobald ich meine Externe benutze klappts nichtmehr.

Fehlermeldung:
Der Client ist gestartet auf (IP):10000

Verbinde mit Server .....
Ein Verbindungsversuch ist fehlgeschlagen, da die Gegenstelle nach einer bestimmten Zeitspanne nicht richtig reagiert hat, oder die hergestellte Verbindung war fehlerhaft, da der verbundene Host nicht reagiert hat (IP):10000

Das ist die Fehlermeldung.

  • Zensiert -
C
2.122 Beiträge seit 2010
vor 10 Jahren

Was heißen müsste, das die Ausgehenden Verbindungen des Servers geblockt werden.

Nein das sind die eingehenden Verbindungen, die musst du in der Firewall freigeben.

Wenns das nicht ist, prüf nochmal die Weiterleitung im Router, ob die wirklich auf den richtigen Rechner und Port geht.

J
jansenpeter Themenstarter:in
38 Beiträge seit 2013
vor 10 Jahren

Dasmit der Firewall ist so n Ding, in der Windows-Firewall hab ich nämlich nicht nur n Port freigegeben sondern das ganze Programm.

Und bei meinem Router gibts keine große Möglichkeit was falsch zu machen, man kann nur n Port un ein Gerät auswählen für welches der Port geöffnet werden sol und da steht mein Computer drin.

  • Zensiert -
1.696 Beiträge seit 2006
vor 10 Jahren

Hallo,

IMHO liegt es bei deiner Firewall, du musst ein NAT-Regel erstellen, die eine externe Anfrage an deinen internen Server weiterleitet, erst dann kann der Server antworten. Deaktiviere die Windowsfirewall testweise mal (reboot nicht vergessen, denn Dienst beenden reicht nicht).

Grüße

Ich bin verantwortlich für das, was ich sage, nicht für das, was du verstehst.

**:::

4.221 Beiträge seit 2005
vor 10 Jahren

Zeig mal die Zeile wo Du den Listener erstellst

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...

J
jansenpeter Themenstarter:in
38 Beiträge seit 2013
vor 10 Jahren
            try
            {
                GetIpAdresse(ref ipAdresse);
                tcpListener = new TcpListener(IPAddress.Parse(//meine externe IP-Adresse//), port);
                tcpListener.Start();
            }
            catch (Exception exp)
            {
                txtmessage.AppendText("Beim Versuch der Auflösung der Addresse: " +
                  ipAdresse.ToString() + " enstand folgender Fehler:\r\n" + exp.Message);
                return;
            }
  • Zensiert -
2.298 Beiträge seit 2010
vor 10 Jahren

Nimm mal bitte IPAddress.Any - Damit sollte es gehen.

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

J
jansenpeter Themenstarter:in
38 Beiträge seit 2013
vor 10 Jahren

Ja, danke. Mit IPAddress.Any hats geklappt.

Mein Freund konnte sich mit meinem Server verbinden und konnte Nachrichten verschicken, danke inflames2k 😃

  • Zensiert -
2.298 Beiträge seit 2010
vor 10 Jahren

Ja, zur kurzen Erläuterung:

Der Server ist ein Rechner im LAN, welcher nur über den Router mit dem Internet kommuniziert. Legst du jetzt fest, das er auf der externen IP-Adresse horchen soll, ist die Festlegung zwar schön, nur kennt der Rechner diese garnicht, er kennt ja nur seine Netzwerk Karten.

Der Server muss folglich auf eine seiner IP-Adressen horchen zum Beispiel 127.0.0.1. Öffnest du nun im Router den entsprechenden Port für den Rechner, werden alle Anfragen an die öffentliche IP-Adresse, welche auf den Port kommen an den Rechner weitergeleitet. - Da jedoch dein Server nicht auf seiner IP-Adresse horcht, ignoriert er die Nachricht.

Edit:

Kleine Analogie dazu, stell dir vor du erwartest einen Brief (Nachricht / Datei die versendet wird). - Der wird vom Absender bei der Post abgegeben (an deine externe IP gesendet). - Die Post (dein Router) weiß, das der Brief zu dir soll. Du gehst aber nicht zur Post und holst dir den Brief (im Normalfall).

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |