c client-server verbindung

Hallo,
ich bin neu hier ;) und seit tagen -> ehr seit wochen (wegen zeitmangel) an meinen Server / Client an rumbasteln den ich mithilfe von Winsock Tutorials erstellt habe.

Auf meinen Pc selbst laüft alles, sodas ich als server ein text an meinen Client schicken kann.

Wenn ich das ganze aber über internet mache dann funtioniert es nicht :(
ich bin so forgegangen um die verbingung aufzubauen, wie im tutorial

Server...
Code:
...
addr.sin_family=AF_INET;
addr.sin_port=htons(12345); //port
addr.sin_addr.s_addr=ADDR_ANY;
 ...
Client
Code:
...
 addr.sin_family=AF_INET;
 addr.sin_port=htons(12345);  //port 
 addr.sin_addr.s_addr=inet_addr("127.0.0.1");  //verbinde zu "home"
...

ich hab den port ""12345" freigeschaltet im router
und statt: "127.0.0.1", meine pc ip (192.168...)
eingeben

-> im router hab ich den port erst als UPD dannach als TPC
freigeschaltet

*port und ip wurden durch Beispiel (Oben im Script) ersetzt

auch hier functioniert alles auf ein pc - warum aber kann ich nicht über von ein anderen Pc aus als Client auf den Server zugreifen

mit hamachi ip und nach dem mein Kollege im Hamachi netzwerk beigetreten ist funtionierte es auch !!!
und mein kollege wohnt 20 km weiter weg

aber nicht alle wollen und haben Hamachi

Was mache ich falsch?

ich hoffe ihr versteht mein problem und könnt mir helfen

MfG: Patty
 
Zuletzt bearbeitet:
Habe ich das jetzt richtig verstanden, dass du übers Internet versuchts auf "deine IP" 192.168... zuzugreifen?

192.168... sind IPs für private Netze, daher wirst du aus dem Internet nicht draufzugreifen könne. Wenn du wirklich aus dem Internet drauf zugreifen willst musst du natürlich auch deine Internet IP angeben als Verbindungsadresse.
 
Wenn ich das ganze aber über internet mache dann funtioniert es nicht :(
ich bin so forgegangen um die verbingung aufzubauen, wie im tutorial
das ist natürlich eine sehr ausführliche Fehlerbeschreibung :rolleyes:
Gibt es keine Verbindung oder stürtzt das Programm ab? Läuft der Client auf der gleichen Maschine oder wird von jemandem ausgeführt?
Firewallregeln angepasst? Hamachi ist - zumindest laut Wikipedia, eine VPNTunnelgeschichte. Und die dürfte zumindest am Router vorbei laufen, bzw. keine manuelle Konfiguration des Routers durch den Benutzer benötigen.

Als erstes würde ich sicherstellen, dass man tatsächlich von außen erreichbar ist, der "Router" die Packete auch korrekt weiterleitet usw. (es also nicht an irgendeinem anderen Faktor liegt).

Dazu nimmt man ein Programm, von dem man weiß, dass es korrekt funktioniert (z.B netcat Netcat - Wikipedia, the free encyclopedia bzw. netcat (Windows) ). Es eignet sich aber eigentlich "alles"[0], hauptsache man kann NetzerkIO leicht überprüfen/einsehen.

Dann nimmt man irgendeinen Webproxy http://proxy.org/cgi_proxies.shtml
und gibt als URL seine IP samt Port ein.
z.B: URL:
http://79.2xx.xxx.xx:2000
Ausgabe:
Code:
D:\nc111nt>nc -L -p 2000
GET / HTTP/1.0
Host: 79.2xx.xx.xx:2000
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; en-us) AppleWebKit
/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1
Accept-Encoding: gzip,deflate
Cache-Control: max-age=259200
kurze Erklärung: nc -L -p 2000 lässt NetCat auf dem Port 2000 eingehende Verbindungen annehmen (und standardmäßig einfach printen).
Hier weiß ich z.B dass bei meinem Rechner die Packete an Port 2000 aus dem Inet korrekt ankommen.

Code:
D:\nc111nt>python -m SimpleHTTPServer 2000
Serving HTTP on 0.0.0.0 port 2000 ...
65.98.111.155 - - [18/Apr/2012 20:30:40] "GET / HTTP/1.0" 200
 
:wink: das ist es ja, auf mein pc laüft es so ab:
server öffnen , dann den client
-> beides einfache konsolenfenster)
und ich kann den server dann in einen einfachen text schreiben und
senden

-> über internet hat das nur mit der hamachi-ip geklappt
okey hamachi "simuliert" ja auch ein netzwerk, trotz das
der port geschlossen war im router (hatte voher pw vergessen)

-> was genau meintes du mit POXY-ip ?

ODER KANN ES DARAN LIEGEN DAS,
der client auf Xp war und der Server auf Windows 7 und es deswegen
nicht functionierte ???

ich guck nochmal alles nach und teste weiter ... melde mich gleich nochmal...
 
Erklär doch jetzt nochmal bitte: Wo steht der Server? Wo steht der Client? Und mit welcher IP versucht der Client auf den Server zu verbinden?
 
:thumb_up::thumb_up::thumb_up: ES FUNCTIONIERT !!! -> ich hab "meine internet ip" genommen
und port im router freigeschaltet und in der firefox zugelassen

-> der Server ?
der laüft auf mein Pc und der Client laüft gerade als test 3 Km entfernt beim Kollegen

server.exe und client.exe -> es handelt sich nur um verbindungs test

aber.. kann man machen dass sich die internet ip nicht immer ändert?
 
Zuletzt bearbeitet:
Also doch das was ich zuerst angenommen habe.

Du kannst irgendein gratis DNS Dienst nehmen (sofern es davon noch welche gibt, schaumal auf no-ip.com vorbei) und dann lässt du immer dort deine IP updaten, so musst nur du deine neuen IP online aktualisieren und nicht jeder Client deine IP.
Mit dem Standard C Zeugs müsstest du dann noch eine Auflösung des Hostnamens in eine IP programmieren.
 
Zurück
Oben