Kommunikation mit "externem" Server

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Saftmixer
User
Beiträge: 26
Registriert: Mittwoch 14. Dezember 2011, 19:00

Hey,

ich habe mal wieder eine Frage. Und zwar experimentiere ich gerade ein wenig mit einem Server herum. Ich habe vor ein kleines Netzwerkspiel,
im erweiterten Sinne zu programmieren. Der Server für das Spiel ist ein kleiner vServer, der sich außerhalb meines Heimnetzwerkes befindet.
Die Kommunikation findet über einen Kanal, erstellt mit diesem Modul statt. Bzw. sollte damit stattfinden.
Denn es kommt einfach kein Kanal zustande. In die eine Richtung(vom Computer zum Server) kann ich zumindest einen Ping durchführen.
In die andere Richtung geht das nicht. Weiß vllt. einer woran das liegt?

Eine andere Frage ist, wie man die "öffentliche" ip des Computer herausfindet. mit socket.gethostbyname(socket.gethostname()) bekomme ich ja
nur die lokale ip heraus, bzw. bei mir unter Ubuntu 127.0.0.1.

Saftmixer

Edit: Habe jetzt was von PortForwarding gelesen. Muss man das auf seinem Router aktivieren? Gibt es da keine andere Möglichkeit?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Saftmixer hat geschrieben:Edit: Habe jetzt was von PortForwarding gelesen. Muss man das auf seinem Router aktivieren? Gibt es da keine andere Möglichkeit?
In IPv4 hast du ja nur eine öffentliche Adresse in der Regel (zumindest bei den üblichen DSL-Providern) und dieser IP-Adresse ist der Router zugeordnet. Woher soll der Router wissen wohin die Verbindung gehen soll? Daher wirst du ein Portforwarding brauchen um dem Router zu sagen dass eingehende Verbindungen von der öffentlichen IP auf einen Rechner im internen Netzwerk weitergeleitet werden sollen. Du kannst bei vielen Routern heutzutage aber UPnP nutzen um vom Internen Netzwerk aus automatisch ein Portforwarding in deinem Router einzurichten.

Bei IPv6 ist das in der Regel kein Problem, da bekommst du ein eigenes öffentliches Subnet und kannst jedem Rechner im eigenem Netzwerk eine öffentliche IPv6 zuweisen und zu dieser dann auch verbinden (zumindest wenn die Firewall das nicht blokiert).

Der Code ist übrigens ziemlich furchtbar, kann es sein dass du aus dem Openbook lernst? Wenn ja dann merkt man das deutlich.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Saftmixer
User
Beiträge: 26
Registriert: Mittwoch 14. Dezember 2011, 19:00

Erstmal danke für die Antwort. Dann komme ich da wohl nicht drum herum.. Wie läuft das denn bei anderer Software, sprich irgendwelchen Online-Games. Die Müssen doch auch auf einen Server connecten..

Der Code ist nicht von mir, den hat mein Info-Lehrer geschrieben..
Benutzeravatar
/me
User
Beiträge: 3554
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Saftmixer hat geschrieben:Erstmal danke für die Antwort. Dann komme ich da wohl nicht drum herum.. Wie läuft das denn bei anderer Software, sprich irgendwelchen Online-Games. Die Müssen doch auch auf einen Server connecten..
Diese Server sind auch direkt mit einer erreichbaren Adresse angebunden.
Antworten