Herakles
Profifragensteller
Hi Freunde!
Ich versuche mich soeben an Netzwerkprogrammierung und es klappt auch eigentlich alles recht gut. Problem ist nur, dass mein Programm immer abstürzt, wenn es write(2) aufrufen will.
Hier mal kurz ein Stück des Codes:
Wie man sehen kann, wird zuerst ein Socket angelegt, dieser mit bind, listen und accept schon genutzt, was auch alles wudnerbar klappt. Sobald ich aber auf diesen Socket schreiben möchte, bricht mein Programm mit einem SIGPIPE ab. Ich suche nun bereits seit einigen Stunden und finde den Fehler nicht. Hat jemand eine Idee?
Ach ja:
Linux, ubuntu6.06, Kernel 2.6.15-27-386 (nicht hauen bitte, ist auf der Arbeit, also bitte beruhigen! :-) )
Danke, Herakles
Ich versuche mich soeben an Netzwerkprogrammierung und es klappt auch eigentlich alles recht gut. Problem ist nur, dass mein Programm immer abstürzt, wenn es write(2) aufrufen will.
Hier mal kurz ein Stück des Codes:
Code:
file_descriptor_inet = socket( PF_INET, SOCK_STREAM, 0);
if ( file_descriptor_inet <= 0 ) {
perror(NULL);
exit(1);
}
if ( bind( file_descriptor_inet, (struct sockaddr *) &address, address_len ) == 0 )
printf("Socket bound!\n");
else {
perror(NULL);
exit(1);
}
if ( ( listen( file_descriptor_inet, 1 ) == 0 ) )
printf("Waiting for a connection... \n");
else {
perror(NULL);
exit(1);
}
if ( accept( file_descriptor_inet, (struct sockaddr*) &address, &address_len) == -1 ) {
perror(NULL);
exit(1);
}
else printf("Connection esablished! \n");
write(file_descriptor_inet,&address,10);
Wie man sehen kann, wird zuerst ein Socket angelegt, dieser mit bind, listen und accept schon genutzt, was auch alles wudnerbar klappt. Sobald ich aber auf diesen Socket schreiben möchte, bricht mein Programm mit einem SIGPIPE ab. Ich suche nun bereits seit einigen Stunden und finde den Fehler nicht. Hat jemand eine Idee?
Ach ja:
Linux, ubuntu6.06, Kernel 2.6.15-27-386 (nicht hauen bitte, ist auf der Arbeit, also bitte beruhigen! :-) )
Danke, Herakles
