Kein Lan-Spiel und Online-Spiel mit meinem Bruder möglich

Alles was mit Enemy Territory zu tun hat
Antworten
Pritscher
Grünschnabel
Grünschnabel
Beiträge: 3
Registriert: Do 19. Aug 2004, 23:34
Wohnort: Dortmund
Kontaktdaten:

Kein Lan-Spiel und Online-Spiel mit meinem Bruder möglich

Beitrag von Pritscher »

Mein Bruder und ich beziehen beide unser Internet über den gleichen Router. Wenn nun einer von uns auf einen Online Server connecten will werden beide sofort wegen unknown reason gekickt.
Bei Lan ist es ähnlich. Will ich bei meinem Bruder connecten werde ich wegen unkown reason gekickt. Erstell ich jedoch den Server können wir beide spielen bis das warmup vorbei ist. Noch bevor das SPiel beginnt kommt der Microsoft Problembericht.
Woran kann das alles liegen?
Kann mir hier vielleicht einer helfen?
Ich wer euch echt dankbar.

Pritscher
gixmo
Triple-Ass
Triple-Ass
Beiträge: 186
Registriert: Sa 10. Jul 2004, 00:33
Wohnort: Buchberg
Kontaktdaten:

Beitrag von gixmo »

aso das erste prob könnte sein, das ihr die gleiche ip + port verwendet.. mit net_port kannst du den port ändern :wink:
Pritscher
Grünschnabel
Grünschnabel
Beiträge: 3
Registriert: Do 19. Aug 2004, 23:34
Wohnort: Dortmund
Kontaktdaten:

Beitrag von Pritscher »

"aso das erste prob könnte sein, das ihr die gleiche ip + port verwendet.. mit net_port kannst du den port ändern"

was ist ein net port?
wie kann ich das ändern?
Benutzeravatar
WoodSTokk
Helpdesk
Helpdesk
Beiträge: 2634
Registriert: Fr 6. Dez 2002, 03:09
Wohnort: Wien/Österreich/Europa/Erde
Alter: 53

Beitrag von WoodSTokk »

Damit sich Computer Daten übers Netzwerk schicken können, müssen sie sich an bestimmte Richtlinien halten damit sie sich auch gegenseitig verstehen. Diese grundlegende Richtlinie nennt sich Protokoll und im Internet hat sich IP (Internet Protocol v4) durchgesetzt. Bei diesem Protokoll bekommt jeder Rechner eine eindeutige IP-Adresse zugewiesen mit der die Datenpakete adressiert werden.
Das IP-Protokoll ist jedoch nur der Umschlag damit das Paket ankommt. Der Inhalt muss wieder einer Richtlinie entsprechen was wieder über ein Protokoll festgelegt wird. Es gibt viele Protokolle aber die wichtigsten sind TCP (Transmission Control Protocol), UDP (User Datagram Protocol) und ICMP (Internet Control Message Protocol).
Da auf einem Rechner mehrere Prozesse laufen können die übers Netzwerk kommunizieren, haben das TCP- und UDP-Protokoll mehrere Ports damit der Rechner entscheiden kann an welchen Prozess die Daten gerichtet sind. Beite Protokolle haben 65536 Ports. Das Port 0 ist ein totes Port und fällt somit weg. Die Ports 1 bis 1023 nennt man privilegierte Ports und werden von Prozessen verwendet die Dienste anbieten wie zB Web-Server (HTTP) verwenden TCP-Port 80, Mail-Server (SMTP) TCP-Port 25 und (POP3) TCP-Port 110, Server für die Namensauflösung (DNS) UDP-Port 53 sowie TCP-Port 53 usw.
Das Port 1024 ist reserviert und sollte nicht verwendet werden.
Die Ports 1025 bis 65535 nennt man unprivilegierte Ports und können frei verwendet werden. Über diese Ports werden auch Verbindungen angefordert. Wenn du mit deinem Browser eine Web-Seite aufrufst, sucht sich dein Betriebssystem einen Port über 1025 aus und versucht den Web-Server auf dem die Seite liegt auf Port 80 zu erreichen.

Soweit mal die Einführung in Netzwerke. Wenn du was nicht verstanden hast, fragst du einfach ;)

ET verwendet das UDP-Protokoll und arbeitet per Default über das Port 27960. Du kannst aber ET anweisen über ein anders Port die Verbindung aufzunehmen. Dazu musst du der Variablen 'net_port' die Nummer zuweisen die ET verwenden soll.
Die Einstellung kannst du entweder als Startparameter vornehmen (+set net_port 27961) oder du schreibst in deine 'autoexec.cfg' die Zeile 'seta net_port 27961'.

Warum das ganze?
Du bekommst von deinen Provider eine IP zugewiesen damit dein Rechner im Internet Daten verschicken und empfangen kann. Da du aber mit 2 Rechner ins Internet willst, hast du einen Router.
Der Router erhält nun die IP des Providers und hat auch intern eine IP.
Alle Rechner hinter dem Router erhalten auch eine IP die im selben Netz liegt wie die des Routers. Wenn jetzt ein Rechner eine Verbindung nach draussen wünscht, sendet er die Pakete an den Router.
Der Router sieht anhand der Ziel-IP daß das Ziel nicht intern liegt sondern extern. Allerdings hat das Paket eine Quell-IP die in Internet nicht gültig ist. Deshalb maskiert der Router das Paket indem er die Quell-IP von der des Rechners mit der des Providers austauscht. Nun hat das Paket eine gültige IP und wird weitergeleitet. Damit der Router aber Antworten auf dieses Paket an den richtigen Rechner weiterleitet, speichert er einen Eintrag in einer Liste. Diese Liste nennt sich NAT (Network Address Translation) und darin wird die interne-Quell-IP mit dem Quell-Port und die Ziel-IP mit Ziel-Port gespeichert. Kommt nun ein Antwortpaket, schaut der Router in der Liste nach und kann anhand der Daten eindeutig feststellen wo das Paket hin muss. Damit das Paket aber intern gültig ist, muss er wieder die IP's umschreiben, diesmal die Ziel-IP.

Wenn dein Bruder auf einen Server connected, sieht der Router eine Verbindung von 'interne-IP-1 mit Port 27960' nach 'Server-IP mit Port 27960'. Der Router maskiert die Adresse und speichert einen Eintrag in der NAT.
Wenn du jetzt auch auf diesen Server connectest, sieht der Router wieder eine Verbindung. Diesmal aber von 'interne-IP-2 mit Port 27960' nach 'Server-IP mit Port 27960'. Wenn jetzt ein Antwortpaket vom Server kommt, sieht der Router in der NAT nach und kann sich nicht entscheiden wohin er das Paket schicken soll da die Server-IP mit Port und auch das interne Port gleich ist, nur die interne-IP ist anders. Wohin soll er das nun schicken?
Ein guter Router erkennt diese Schwachstelle schon vorher und maskiert auch das Port indem er einfach ein anderes nimmt. Bei Antworten wird das Port ebenfalls wieder geändert und so merken beide Rechner nichts von dem ganzen maskieren.
Wenn diese Schwachstelle der Router nicht erkennt, muss man etwas nachhelfen indem man das Port selbst ändert.
Dadurch bleibt die NAT sauber und der Router bekommt keine Maskierungskonflikte.

mfG WoodSTokk
Du scheisst es nicht zu wetzen
Testserver: @peStable (95.129.206.243:27960)
Pritscher
Grünschnabel
Grünschnabel
Beiträge: 3
Registriert: Do 19. Aug 2004, 23:34
Wohnort: Dortmund
Kontaktdaten:

Beitrag von Pritscher »

Also das war ja mal ne sehr ausführliche Antwort!
Da hast du dir aber bestimmt ne Menge Zeit genommen.
Danke schon mal.

Allerdings habe ich noch ein paar Fragen zu dem Vorgang den ich machen muss um meine ip zu ändern.
Was ist die Variable net_port? Und wie kann ich es ihr zuweisen?

"Die Einstellung kannst du entweder als Startparameter vornehmen (+set net_port 27961) oder du schreibst in deine 'autoexec.cfg' die Zeile 'seta net_port 27961'. "

den Rest von der Erklärung des Vorgangs verstehe ich leider auch nicht wirklich :( :oops:

Ich würde mich sehr freuen wenn du mir diesen Vorgang einmal ganz genau, jeden einzelnen Schritt, beschreiben würdest.
So, dass auch einer der von Computern nicht sonderlich viel Ahnung hat etwas damit anfangen kann.

mfg Pritscher
Benutzeravatar
WoodSTokk
Helpdesk
Helpdesk
Beiträge: 2634
Registriert: Fr 6. Dez 2002, 03:09
Wohnort: Wien/Österreich/Europa/Erde
Alter: 53

Beitrag von WoodSTokk »

Also das wichtigste mal für ET.

Nachdem du nicht viel Ahnung von Computern oder besser gesagt die Steuerung der Software hast, fang ich mal mit DOS (Disk Operating System) an. Warum ich mit DOS anfange ist leicht erklärt.
In der Frühzeit der Computer gab es kein GUI (Grafic User Interface), also den bunten Bildschirm (Desktop) mit den vielen Bildern (Icons). Auch die Maus wurde erst später von der Firma Apple erfunden.
Früher gabs nur eine textbasierene Eingabe über Tastatur.
Damals wurde ein Programm gestartet indem man den Namen des Programms eintippte und auf 'Return' drückte. Das funktioniert auch heute noch da Windows am Beginn nur ein grafischer Aufsatz auf DOS war. Heute ist es bereits mit WinNT/2K/XP bereits ein ganzes Betriebssysten (OS = Operating System) und braucht DOS eigendlich nicht mehr. Aus Kompatibilitätsgründen (damit auch ältere Software darauf läuft) werden die meisten DOS-Funktionen weiterhin unterstützt und sogar noch erweitert. Unter den oben genannten Betriebssystemen ist es nicht mehr wirklich ein echtes DOS, sondern eine Emulation.
Du findest sie unter 'Start' --> 'Programme' --> 'Zubehör' --> 'Eingabeaufforderung'.
Unter DOS konnte der Name einer Datei (oder Verzeichnisses) bis zu 8 Zeichen lang sein. Danach folgt ein Punkt und dahinter nochmal 3 Zeichen (man nennt das auch '8.3-Format'). Diese 3 Zeichen nennt man Extention (Erweiterung) und anhand dieser weis der Benutzer (oder sollte es zumindest) um was für eine Datei es sich handelt. DOS selbst achtet nur auf wenige Erweiterungen die es für den Betrieb braucht.

Wichtige Erweiterungen für DOS:

EXE = Execute (Ausführen) --> Programme
COM = Command (Befehl) --> Befehle fürs Betreibssystem
BAT = Batch (Stapel) --> Eine Textdatei mit mehreren Befehlen
SYS = System --> Spezielle Programme, meistens für Treiber verwendet

Erst Windows machte es möglich daß der Name einer Datei länger als 8 Zeichen sein kann. DOS und Windows unterscheiden nicht zwischen Gross- und Kleinschreibung. Du kannst zwar in Windows deine Dateien mit Gross- und Kleinschreibung benennen, beachtet wird das aber nicht. Daher ist es unter DOS/Windows nicht möglich in einem Verzeichnis eine Datei 'readme.txt' zu nennen und eine zweite 'ReadMe.txt'.

Zurück zu Enemy Territory.
In deinem ET-Verzeichnis befindet sich eine Datei 'ET.exe'. Das ist (laut Erweiterung) ein Programm. Das Programm kannst du auch im DOS starten. Da DOS das Programm das du starten willt nicht auf deinen gesamten Partitionen sucht (würde bei den heutigen Größen lange dauern), musst du zuerst in das Verzeichnis wechseln indem das Programm liegt. DOS sucht Programme nur in System-Verzeichnissen und im aktuellen Verzeichnis indem du dich gerade befindest.
Unter DOS wechselt man in ein anderes Verzeichnis mit dem Befehl 'cd <Pfad>'. Für ET ist das vermutlich:

Code: Alles auswählen

cd "\Programme\Enemy Territory"
cd = Befehl
"\Programme\Enemy Territory" = Parameter
In diesem Fall beinhaltet der Parameter den Pfad inden der Befehl 'cd' dich setzen soll. Die Anführungszeichen sicht wichtig!!!
Unter DOS darf in einem Dateinamen kein Leerzeichen (Space) enthalten sein. DOS interpretiert die einzelnen Wörter die du eingibst. Das erste Wort muss ein Programm/Befehl/Batch sein. Jedes Weitere Wort ist ein Parameter der dem Programm/Befehl/Batch übergeben wird.
Da der Verzeichnispfad von ET im oberen Beispiel ein Leerzeichen beinhaltet, muss der Pfad in Anführung gesetzt werden. Damit liest DOS alles innerhalb der Anführung als einen Parameter. Würdest du die Anführung weglassen, liest DOS es wie folgt:
Befehl: cd
Parameter 1: \Programme\Enemy
Parameter 2: Territory

Logischerweise kann in einem Dateinamen auch kein Anführungszeichen stehen, da es sonst zu Konflikten kommt (auch heute noch unter Windows).
Der Backslash ('\') unterteilt die Verzeichnisebenen und kann ebenfalls nicht in Namen verwendet werden(Windows detto).

Danach kannst du ET starten mit:

Code: Alles auswählen

et.exe
Hier sieht man schon das DOS/Windows die Gross-/Kleinschreibung nicht beachtet. Du könntest auch 'ET.EXE' eingeben, es würde aufs selbe rauskommen.
Auch dem Programm 'ET.exe' kann man Parameter übergeben.
Um in deinem Fall das Port zu ändern, startest du ET so:

Code: Alles auswählen

et.exe +set net_port 27961
DOS liest die Zeile so

Befehl: et.exe
Parameter 1: +set
Parameter 2: net_port
Parameter 3: 27961

und übergibt dem Programm 'et.exe' 3 Parameter.
ET liest den ersten Parameter ('+set') und weis damit daß es eine Variable setzen soll. Welche Variable es setzen soll, steht im nächsten Parameter ('net_port') und der Wert der in dieser Variable gespeichert werden soll im nächsten ('27961').

:evil: Maaaaannnnn, das ist ja total umständlich jedesmal die Zeile einzutippen :evil:
Richtig! Deshalb gibt es Batch-Dateien (BAT).
Eine Batch-Datei ist eine stinknormale Textdatei, wie sie der Editor schreibt.
Erstell eine neue Text-Datei in deinem ET-Verzeichnis und öffne sie.
In die Datei schreibst du die selbe Zeile, wie du sie in der Eingabeaufforderung auch eingeben würdest.
In deinem Fall wären das die Zeilen:

Code: Alles auswählen

cd "\Programme\Enemy Territory"
et.exe +set net_port 27961
Dann speicherst du die Datei und schliest den Editor.
Zurück im Explorer benennst du die Datei um in 'ET.bat'.
Die Erweiterung 'bat' sagt DOS/Windows daß es sich um einen Befehlsstapel handelt den Windows bei einem doppelklick an DOS übergibt, welches die Befehle der Reihe nach abarbeitet.
Damit du ET auch vom Desktop aus starten kannst, klickst du mit rechts auf deine ET-Verknüpfung und wählst im Kontextmenü 'Eigenschaften'.
Sollte der Karteireiter 'Verknüpfung' nicht aktiv sein, klickst du in an damit du das aktuelle Ziel siehst. Als Ziel müsste bei dir

Code: Alles auswählen

"C:\Programme\Enemy Territory\ET.exe"
stehen. Das 'exe' am Ende änderst du um in 'bat'.
Bei 'Ausführen:' kannst du 'Minimiert' wählen damit das DOS-Fenster nicht auf dem Desktop erscheint. Damit das Symbol beibehalten bleibt, klickst du auf 'Anderes Sysmol...', wählst die 'ET.exe' aus und darin das ET-Logo.
Wenn du ASE oder HLSW zum starten verwendest, kannst du diesen Programmen in den Game-Einstellungen ebenfalls sagen daß sie ET nicht mit der 'ET.exe' sondern mit der 'ET.bat' starten sollen.
Dann musst du allerdings deine 'ET.bat' erweitern, weil diese Programme ET ebenfalls Parameter übergeben. Damit deine Batch-Datei die Parameter von ASE/HLSW mitübernimmt, musst du nach deinen Parametern noch ein '%*' anfügen.

Nachdem du jetzt weist wie DOS/Windows auch heute noch mit Programmen/Befehlen/Batches arbeitet, poste ich dir eine 'ET.bat' in der du nur noch das Laufwerk und denn Pfad anpassen musst.

Code: Alles auswählen

del /S /Q "C:\Programme\Enemy Territory\*.pid"
"C:\Programme\Enemy Territory\ET.exe" +set net_port 27961 +set com_hunkmegs 192 +set com_soundmegs 32 +set com_zonemegs 32 +set fs_game etpro %*
Viel Spass beim fraggen 8)

Anmerkung:
Damit du im Explorer die Erweiterungen von Dateien ändern kannst, musst du sie auch sehen können.
Im Explorer auf 'Extras' --> 'Ordneroptionen'
Karteireiter: Ansicht
deaktivieren --> [ ] Dateinamenerweiterung bei bekannten Dateitypen ausblenden
Sollte diese Funktion aktiv sein, siehst du zwar im Explorer den Namen 'ET.bat', es bleibt aber eine Textdatei und der volle Name ist dann 'ET.bat.txt'.
This is not a Bug, its a Feature :twisted:

mfG WoodSTokk
Du scheisst es nicht zu wetzen
Testserver: @peStable (95.129.206.243:27960)
WolfVox (GER)
Master of City
Master of City
Beiträge: 3173
Registriert: Fr 6. Dez 2002, 03:52
Wohnort: Lombaburg (Württ.) -=[sPw]=-
Kontaktdaten:

Beitrag von WolfVox (GER) »

GENI(t)ALES Posting 8)


Kein Wunder, dass du kaum noch zum (auch gemeinsamen) Zocken kommst :twisted:
"Man kann alle Leute einige Zeit und einige Leute alle Zeit,
... aber nicht alle Leute alle Zeit zum Narren halten"
(Abraham Lincoln)


Gruß
Wolferl ;-)

Optimismus ist ein Mangel an Information.
Ein Pessimist ist ein Optimist mit Erfahrung.
Benutzeravatar
WoodSTokk
Helpdesk
Helpdesk
Beiträge: 2634
Registriert: Fr 6. Dez 2002, 03:09
Wohnort: Wien/Österreich/Europa/Erde
Alter: 53

Beitrag von WoodSTokk »

Ich sollte wirklich mal ein paar Tuts schreiben indem ich dann erkläre warum was wie geschrieben sein muss damit es dann läuft.
Ich denke eben wenn ich was erkläre dann schon richtig. Wenn jemand mal den Hindergrund verstanden hat warum er es so schreiben muss, kann er sich später bei Fehlern auch selber helfen da er dann eine Batch lesen und verstehen kann.
Das schlimme an den neuen Usern unter Windows ist ja leider daß sie nie mit DOS etwas getan, ja geschweige den gesehen haben. Die Regeln vom DOS gelten aber weiterhin unter Windows.
Du scheisst es nicht zu wetzen
Testserver: @peStable (95.129.206.243:27960)
WolfVox (GER)
Master of City
Master of City
Beiträge: 3173
Registriert: Fr 6. Dez 2002, 03:52
Wohnort: Lombaburg (Württ.) -=[sPw]=-
Kontaktdaten:

Beitrag von WolfVox (GER) »

Ich nenne solche Anwender nur als Fenster-Artisten und Maus-Jongleure,
die, wenn die Maus mal ausgefallen ist, gleich völlig überfordert sind.
Andererseits kenne ich auch Tastatur-Junkies, die "fast" ohne Maus,
sich (so) wesentlich schneller durchs Windows / Office bewegen 8)
(...)Das schlimme an den neuen Usern unter Windows ist ja leider daß sie nie mit DOS etwas getan, ja geschweige den gesehen haben. Die Regeln vom DOS gelten aber weiterhin unter Windows.
Yoh und nicht nur bei WIN, sondern auch unter Linux, können / wären
DOS-Grundlagen nicht nur kein Fehler, sondern auch recht nützlich.
Von sämtlicher Zeilenbasierenden Anweisungen (Scripte, Konsolenbefehle etc.)
und Übergabe von Parametern / Schalter, gar nicht zu reden.

Für völlig Desinteressierte / Untalentierte, gibt es (zum Glück) immer noch Playstation & Co. :wink:
"Man kann alle Leute einige Zeit und einige Leute alle Zeit,
... aber nicht alle Leute alle Zeit zum Narren halten"
(Abraham Lincoln)


Gruß
Wolferl ;-)

Optimismus ist ein Mangel an Information.
Ein Pessimist ist ein Optimist mit Erfahrung.
Antworten