rene87
Lieutenant
- Registriert
- Mai 2007
- Beiträge
- 752
Moin an alle,
wie der Titel schon sagt habe ich beim Kompileren einer C datei einige Fehler Warnung
da ich unter Linux nicht sehr fit bin wei ich auch nicht wie ich diesen Fehler beheben könnte
MfG René
wie der Titel schon sagt habe ich beim Kompileren einer C datei einige Fehler Warnung
ich habe schon versucht aus sockaddr_in ein sockaddr zu machen doch dann kommt es immer zu "Socket konnte nicht gebunden werden"hier ist der Code
- passing argument 2 of ‘accept’ from incompatible pointer type
/usr/include/sys/socket.h:214: note: expected ‘struct sockaddr * __restrict__’ but argument is of type ‘struct sockaddr_in *- incompatible implicit declaration of built-in function ‘printf’
Code:#include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <time.h> #include <string.h> #define SERVER_PORT 2222 int main(char *argv[], int argc) { int sockfd, newsockfd, client_len, childpid,cli_size; struct sockaddr_in serv_addr, client_addr; time_t systime; char *chrtime; int timelen; printf("creating socket..."); /** * Socket erstellen! */ sockfd = socket(AF_INET, SOCK_STREAM, 0); if (sockfd < 0) { perror("Socket konnte nicht erstellt werden. FEHLER!\n"); } else printf("OK\n"); /** * Socket erstellt! */ bzero(&serv_addr, sizeof(serv_addr)); serv_addr.sin_family = AF_INET; serv_addr.sin_addr.s_addr = INADDR_ANY; serv_addr.sin_port = htons(52500); printf("binding socket..."); /** * Socket binden! */ if (bind(sockfd, (struct sockaddr*) &serv_addr, sizeof(serv_addr)) < 0) { printf("Socket konnte nicht gebunden werden. FEHLER!\n"); } else printf("OK\n"); /** * Socket gebunden! */ printf("putting socket into listen-mode..."); /** * listen aufrufen! */ if(listen(sockfd, 3) == -1) { perror("Kann auf dem Socket nicht lauschen. FEHLER!\n"); } else printf("OK\n"); /** * listen aufgerufen! */ printf("waiting for client connection..."); /** * accept aufrufen! */ int port; port = accept(sockfd, &client_addr, &cli_size); /** * accept aufgerufen! */ printf("OK\n"); printf("client address: %s \n", inet_ntoa(client_addr.sin_addr)); time(&systime); chrtime = ctime(&systime); timelen = strlen(chrtime); printf("sending current system-time..."); /** * Zeit ueber Socket verschicken! */ printf(chrtime); printf("..."); int bytes; bytes = send(port, chrtime,timelen,0); if(bytes == -1) { perror("Konnte Nachricht nicht senden. FEHLER!"); } else printf("OK\n"); /** * Zeit ueber Socket verschickt! */ close(port); close(client_addr.sin_addr); if(close(sockfd) == -1){ printf("Fehler beim schließen"); } }
da ich unter Linux nicht sehr fit bin wei ich auch nicht wie ich diesen Fehler beheben könnte
MfG René