?
Ohhhh, mein letzter Post beinhaltete Code aus dem Server. Es ist mir beim Verfassen entgangen, dass der Fehler auch noch beim Clienten liegen könnte. Die Ausgabe des folgenden Codes aus dem Clienten scheint dies zu bestätigen:
// open connection
if(newconnection(&sockfd) != 0){
printf("%s\n", " Error in function newconnection()");
}
else{
printf("%s\n", " OK in function newconnection()");
}
/*
Open connection to server
@ int *sockfd: pointer to socket file descriptor
*/
int newconnection(int *sockfd, int *port, int *ipaddr){ // todo: infos von pointer holen, nicht von define !!!
printf("%s\n", "1");
// Adressinformation for ip-connection
struct sockaddr_in serv_addr;
printf("%s\n", "2");
serv_addr.sin_family = AF_INET;
printf("%s\n", "3");
serv_addr.sin_port = htons(PORT);
printf("%s\n", "4");
serv_addr.sin_family = inet_addr(IPADR);
printf("%s\n", "5");
memset(&serv_addr.sin_zero, 0, sizeof(serv_addr.sin_zero));
printf("%s\n", "6");
// Try to connect
if(connect(*sockfd, (struct sockaddr*) &serv_addr, sizeof(serv_addr)) < 0){
printf("%s\n", "7.1");
return -1;
}
printf("%s\n", "7.2");
return 0;
}
Nun die Konsolenausgabe:
OK in function getsocket()
1
2
3
4
5
6
7.1
Error in function newconnection()
Daraus geht hervor, dass der Fehler irgendwo in Zeile 19 des zweiten Code-Stücks liegen muss. Gerade, da das Kompilieren einwandfrei funktioniert und beim Ausführen nur -1 von connect() zurückgegeben wird finde ich die falsche Stelle nicht.