Hallo zusammen, ich beschäftige mich gerade mit Socketprogrammierung in C unter Linux. Dazu habe ich folgende sehr hilfreiche Seite gefunden: http://www.fh-gelsenkirchen.de/fb01/homepages/pollakowski/socket/skripte.html Wenn ich dieses einfache Beispiel nehme und compiliere http://www.fh-gelsenkirchen.de/fb01/homepages/pollakowski/socket/skripte/ServerHalloWelt.txt dann läuft es wunderbar. Wenn ich allerdings den String web_seite um ein paar Sätze erweitere, dann funktioniert es nicht mehr. Compilieren und starten geht logischerweise. Aber wenn ich ihn über den Browser oder über putty ansprechen will, kommt Verbindung abgelehnt(putty) bzw Keine Verbindung möglich(Firefox). Hat jemand eine Idee, woran das liegt? Viele Grüße
rolandwunderlich schrieb: > Wenn ich allerdings den String web_seite um ein paar Sätze erweitere, > dann funktioniert es nicht mehr. Zeigen.
Schuss ins Blaue: der Code setzt kein SO_REUSEADDR auf die Socket. Könnte es sein, dass das Problem nicht durch Deine Änderung auftritt, sondern durch erneutes Starten des Programms weniger als (ich glaub 120s) seit Beenden? Ohne SO_REUSEADDR ist der Port dann nicht wieder verfügbar. Schneller Test: Prozess beenden, zwei Minuten warten, nochmal versuchen. Dazu fällt auf: Dem Code fehlt jegliche Fehlerbehandlung. Das ist ganz aua, besonders wenn es um z.B. Netzwerk geht, wo sonst was dazwischenkommen kann. Sowas gehört von Anfang an da rein. Überprüge mal den Rückgabewert von bind(). Muss 0 sein, sonst kannste an der Stelle schon einpacken.
Ja, es scheint so zu sein, wie Malte geschrieben hat. Hier ist die Lösung dazu: http://www.ibm.com/developerworks/linux/library/l-sockpit/ (Pitfall 3)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.