PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Port 6000



Shack
12-08-2002, 18:01
Hi,

so mein Server - Prog. läuft jetzt. Im nächsten Schritt gibt es allerdings noch ein Problem.
Wenn ich mein Server an den Port 6000 ( xProtokoll ) binden möchte, machte er das nicht.
Er akzeptiert den 5999 , dem 6001 und selbst 21 oder 25.

Vieleicht kennt ja jemand den Grund und kann mir helfen.

Hintergrund ist der: Ich lenke das Display eines anderen Rechners auf den Rechner wo der Server läuft. Starte ich z.B xterm , über telnet, auf dem dem anderen Rechner kommen
die Pakete über den Port 6000 in den Server-Rechner und die Inhalte der Pakete ( nur Text) möchte ich zum Teil auf die Konsole umlenken.

Vieleicht kennt ja jemand ein Programm welches das realisiert ?

Gruß Shack

anda_skoa
12-08-2002, 19:15
Überprüfe mal, ob der Port schon von einem anderen Prozess belegt ist

#> netstat -panA inet | grep 6000

Ciao,
_

Shack
12-08-2002, 22:17
ja, in der Ausgabe stehet tcp 0.0.0:6000 Listen

wenn ich den Prozeß abschiesse , wird KDE benedet und es erscheint die Anmeldeaufforderung.

Kann immer nur ein Prozeß an einem Port horchen ?
Oder gibt es vielleicht einen Trick ?

anda_skoa
12-08-2002, 22:37
Original geschrieben von Shack
ja, in der Ausgabe stehet tcp 0.0.0:6000 Listen

wenn ich den Prozeß abschiesse , wird KDE benedet und es erscheint die Anmeldeaufforderung.


Offensichtlich ein lokaler XServer



Kann immer nur ein Prozeß an einem Port horchen ?
Oder gibt es vielleicht einen Trick ?

Da kann immer nur einer den selben Port benutzen.
IP:Port ist der sogenannte Socket und der ist eindeutig.

Du kannst zB deinen Server vorher starten und ihn nur an ein Interface binden.
Dann sollte der XServer in der Lage sein den Port nur auf den noch freien Interfaces zu benutzen.
Kann aber sein, dass das nicht geht.

Was macht dein Server eigentlich am Xserver Port?
Willst du das X Protokoll mitschreiben?

Ciao,
_

Shack
12-08-2002, 23:41
...ja genau das hatte ich vor. Ich starte eine X-Applikation ( xterm ) und
in irgendein Paket des xProtokolls muss ja dann z.B die Eingabeaufordeung ( 'Bash-4.0 :')
stehen. Diesen String ( sieht man gut mit ethereal ) will ich herausfiltern.

Am Anfang würde es mir erstmal reichen, dass ich überhaupt das xProtokoll mitschreiben könnte ...

cu Shack

anda_skoa
13-08-2002, 09:29
Du könntest den XServer an einem anderen Port starten und deinen Server zu einem Proxy machen, also alle Connects annehmen und deinerseits einen Connect zum XServer machen.

Dann mußt du immer von einem Socket lesen und auf den anderen schreiben.

Ciao,
_

Shack
13-08-2002, 11:28
Du hast die Frage sicherlich schon erwartet.

Wie startet man den XServer an einem anderen Port ???

Cu

anda_skoa
13-08-2002, 18:30
Hmm, da muß ich leider passen :(

Falls niemand anderer Rat weiß, würde ich vorschlagen, du probierst deinen Server nur am externen Interface zu bind() en und startest dann erst X.
Dann sollte der XServer, wenn er das verkraftet, nur an den verbleibenden Interfaces, also zB Loopback, den Port reservieren.

In diesem Fall bekommst du alle Pakete "von außen" und kannst sie dann an localhost:6000 weiterleiten.

Ciao,
_

Tobias
13-08-2002, 21:15
Hi

Versuch mal den XServer von der Konsole zu starten mit startx -- :1,
er solle dann auf port 6001 laufen.

Du kannst auch XProgramme auf andere Ports schicken z.B.
mit der Option[i]-display :2[i/] auf 6002.

Ich bin nicht sicher obs funktioniert, nicht ausporbiert.

Tobias

Shack
14-08-2002, 10:25
Erstmal vielen Dank für eure Hilfe !

Aber das mit den X-Programmen auf andere Ports aumlenken usw. das läuft nicht.
Man kann immer nur ein X-server laufen lassen, der dann entsprechend nur an einem
Port horcht. Sollten also "x-Pakete" über einen anderen Port ins System kommen,
ist da kein Server der in der Lage ist die Pakete zu bearbeiten.

Hoffe meine Ausführung ist schlüssig und richtig .

Deshalb noch eine Frage : bei Suse ist FreeBSD für das WindowManagagement zustandig,
FreeBSD ist also der X-server - richtig ?

Wenn ja, heisst das wohl Quellcode studieren und mal schauen wie das Programm das umsetzt.

Cu Shack

tkortkamp
14-08-2002, 12:21
Deshalb noch eine Frage : bei Suse ist FreeBSD für das WindowManagagement zustandig,
FreeBSD ist also der X-server - richtig ?
Nein! Wie kommst du darauf? FreeBSD ist ein Kernel! Kannst du bei http://www.freebsd.org finden. Unter FreeBSD, sowie allen Linux-Distributionen wird XFree86 als X-server benutzt.
Zu finden unter http://www.xfree86.org

c ya,
Tobias

Shack
14-08-2002, 13:03
...sorry , aber ich meinte auch XFree86. Keine Ahnung was ich da im Hinterkopf hatte ?!?

Cu