socket connect() error ?
-
Liebe Community,
Ich habe einen Code, der zu 2 IP Adressen (öffentliche IP Adressen) sich verbinden soll, das Programm hängt sich an folgender Stelle auf:
cout << "bevor" << endl; if (connect(s, (struct sockaddr*) &srv, sizeof(srv)) == -1) { cout << "inside" << endl; return -1; }
Die Ausgabe des Programmes ist:
bevor
Also scheint es so, a ls ob er sich beim connect(...) aufhängt?
Was soll das für einen Sinn ergeben?
Der Host, den ich über den FTP Port ansprechen will, verhält sich auch recht "eigenartig".toby@osiriys:~$ ping 194.208.17.1
PING 194.208.17.1 (194.208.17.1) 56(84) bytes of data.
^C
--- 194.208.17.1 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1011mstoby@osiriys:~$ ftp 194.208.17.1
Wenn ich mit dem ftp Befehl auf den Host fahre, bekomme ich auch keinen "Connection failed" etc. sondern es passiert einfach gar nichts.
Hoffe jemand ist die Sache klar und kann mir einen Schups in die richtige Richtung geben :=)
Danke
-
ist ein port geschlossen, wird im allgemeinen immer eine entsprechende meldung sofort nach einem versuch, eine verbindung aufzubauen, zurückgeschickt. manche paketfilter verhindern das und nennen das "stealth mode" oder so. möglicherweise ist das bei diesem server auch der fall.
das programm hängt sich übrigens nicht auf, sondern wartet einfach auf dsa timeout, bis zu dem der kernel versucht, eine verbindung aufzubauen. irgendwann gibt der kernel dann auf und connect wird dir einen fehler zurückgeben.