TCP/IP- Socket.

ich habe es doch nur so geschrieben, dass auf der arbeit. also nicht falsch verstehen bitte. ich bin doch kein idiot, der mit sowas spielt. der Server ist mein jetziger rechner.
 
klar, ich gebe doch die ip vom router ein, aber woher soll der router wissen, welcher rechner das ist. und router ist doch nicht der rechner.
Router:77.11.80.10
Rechner: 192.168.1.98

Ich kann doch dem Client nicht sagen, stell eine verbindung zum Server: 77.11.80.10
obwohl der Server-Lokal-IP: 192.168.1.98 ist.. ooooder?
 
Hi

Beim Router auf der Serverseite muss der Port geöffnet werden.
Bei der Routerkonfiguration (die normalerweise innerhalb des Netzwerkes über eine bestimmte IP erreichbar ist, abhängig vom Modell un den Einstellungen) gibts einen Menüpunkt, der "Portforwarding", "Portweiterleitung" oder so ähnlich heißt.

Dort den Serverport (xxxx?) zusammen mit der Im-Netzwerk-IP vom Servercomputer eintragen.

Der Client (der irgendwo außerhalb des Serverrouters ist) muss im Normalfall bei seinem Router (afalls vorhanden) nichts einstellen.
Ausnahme: Solche Protokolle, bei denen jeder Client wieder Server für andere Clients ist (Torrent etc).
Alles, was bind/listen/accept machen will, also eben Server, brauchen das.

Der Client kann jetzt mit der globalen (Internet-)IP des Routers auf den Server zugreifen.
Direktes Ansprechen einer internen IP hiner einem Router ist eben nicht möglich, da die vom Router vergeben werden und bei einem anderen Router auch wieder vorkommen können.
Dafür gibts bestimmte Bereiche der IP-Adressen, die für solche privaten Netzwerke vorgesehen sind.
Einer davon ist zB 192.168...
Im gesamten Internet kann jeder Router diese IPs für seine angeschlossenen Rechner verwenden, daher sind sie von außen her nicht eindeutig.

Also: Der Client braucht als Server-ip jetzt die globale Internet-IP vom Router und wie üblich den Port.
Bei einem Verbindungsversuch wird er (durch den eingetragenen Port mit IP beim Portforwarding) an den Serverrechner weitergeleitet. Der Router sorgt auch dafür, dass die folgenden Daten von beiden Seiten richtig weitergeleitet werden.

Hat also mit Java recht wenig zu tun.

Die ganze Einstellungssache kann man (wenn vom Router unterstützt und vom Betriebssystem zugelassen) auch vom Programm aus regeln.
Wie das mit Java zu machen ist, weiß ich leider auch nicht.
Stichwort für Google: UPnP

Gruß

Ergänzung:
@Bergonline: Warum soll man wegen sowas gekündigt werden?
Solange man keinen Konkurrenten Spionage ermöglicht (wenn die sich über dein Programm irgendwelche Firmengeheimnisse schicken lassen können)...andernfalls versteh ich nicht warum.

@crazy_chicken: Die von bergonline erwähnte Seite wieistmeineip zeigt die globale IP. Nur als Info.

Gruß
 
Aha, das hört sich schon mal besser an und das, wonach ich die ganze zeit gefragt habe.
Ich werde gleich versuchen, beim router einen POrt zu öffnen.=)

Danke, sonst frage ich noch mal.=)
 
Ich habe es gerade getestet und es hat einwandfrei funktioneiert. Danke!

Ich habe noch eine Frage, vielleicht kann mir jemand helfen. Wenn man Skype instliert, so sucht das Skype-Programm selber ein Port aus und öffnet Ihn(natürlich muss man zuerst akzeptieren.).

Kann man auch mit Java router-port öffnen bzw. freigeben und diesem Port eine lokale IP vom bestimmten Rechner zuweisen?

DANKE!
 
Es kann zu einer Kündigung kommen, weil du die Sicherheitsmechanismen des Firmennetzwerk umgehen möchtest.
Es wurden schon Leute gekündigt, die ihre privaten EMails mit dem Arbeitsrechner gelesen haben.

Gruß

Sascha
 
Ich habe noch eine Frage, vielleicht kann mir jemand helfen. Wenn man Skype instliert, so sucht das Skype-Programm selber ein Port aus und öffnet Ihn(natürlich muss man zuerst akzeptieren.).

Kann man auch mit Java router-port öffnen bzw. freigeben und diesem Port eine lokale IP vom bestimmten Rechner zuweisen?

Wie gesagt: Ich habs mit Java noch nie gemacht, aber google mal nach "UPnP".

Gruß
 
Ich habe es gerade getestet und es hat einwandfrei funktioneiert. Danke!

Ich habe noch eine Frage, vielleicht kann mir jemand helfen. Wenn man Skype instliert, so sucht das Skype-Programm selber ein Port aus und öffnet Ihn(natürlich muss man zuerst akzeptieren.).

Kann man auch mit Java router-port öffnen bzw. freigeben und diesem Port eine lokale IP vom bestimmten Rechner zuweisen?
DANKE!

Du verwechselst da was. Wenn du Skype installierst bist du Client(!) und verbindest dich zu einem Skype Server (zumindest um deine Kontaktdaten zu erhalten).

Das heißt du greifst aus deinem privaten Netz auf eine Internet-IP eines Servers zu. Dein Router ordnet automatisch deiner privaten IP einen Port zu, so kann er bei einer Antwort diese wieder an den richtigen Computer weiterleiten. Das ganze nennt sich PAT => Port Address Translation

Die Ports die du mit Java öffnest haben nichts mit den zutun, die dein Router öffnet! Mit Java öffnest du Ports auf deinem Computer, somit kann dein Betriebssystem die IP/TCP Packete den richtigen Programmen auf deinem Computer zuordnen!

Gruß
 
Zuletzt bearbeitet:
Zurück