server accept() fail
lima-city → Forum → Programmiersprachen → C/C++ und D
argument
aufrufen
code
dank
erfolg
fehlermeldung
funktion
helfen
info
jemand
kleiner server
listen
melde
mini server
null
parameter
schau
server
tower
zeile
-
hey guys ;D
Leider lässt sich mein in c++ codierter kleiner "Server" lässt sich nicht mittels g++ compilern (oder wie das auch heißt?) ...
Als Fehlermeldung bringt g++:
no@no-tower:/media/E8E3-5598$ g++ server.cpp -o server
server.cpp: In function ‘int main(int, char**)’:
server.cpp:46:55: error: invalid conversion from ‘int*’ to ‘socklen_t*’
server.cpp:46:55: error: initializing argument 3 of ‘int accept(int, sockaddr*, socklen_t*)’
Hier noch der Code:
#include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/socket.h> #include <netdb.h> #include <netinet/in.h> #include <arpa/inet.h> #include <unistd.h> #include <cstring> #include <cstdlib> #define BUFFER_SIZE 1024 int main(int argc, char *argv[]) { int sock, cli_size; struct sockaddr_in my_addr, cli; if (sock = socket(AF_INET, SOCK_STREAM, 0) == -1) { perror("socket() failed"); exit (EXIT_FAILURE); } my_addr.sin_family = AF_INET; my_addr.sin_port = htons(222); my_addr.sin_addr.s_addr = INADDR_ANY; if (bind(sock, (struct sockaddr*)&my_addr, sizeof(my_addr)) == -1) { perror("bind() failed"); exit (EXIT_FAILURE); } if (listen(sock, 3) == -1) { perror("listen() failed"); exit (EXIT_FAILURE); } for(;;) { cli_size = sizeof(cli); if (accept(sock, (struct sockaddr *) &cli, &cli_size) == -1) // line 46 { perror("accept() failed"); exit (EXIT_FAILURE); } printf("client from %s", inet_ntoa(cli.sin_addr)); } return 0; }
Wenn jemand eine Idee hat, was das ein könnte bitte melden,
danke im vor raus,
YoSEF
Beitrag zuletzt geändert: 16.8.2011 12:48:17 von seiten -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Falls du es noch nicht hast:
du hast "cli_size" als int deklariert und du versuchst es der Funktion bei Zeile 46 zu übergeben.
Die Funktion erwartet aber als letzten Parameter eine "socklen_t*"-Variable.
Falls es geht, schau in die accept-Funktion mal rein oder ändere deine "cli_size"-Variable.
Hoffentlich konnte ich dir helfen.
Viel Erfolg mit deinem Mini-Server
Beitrag zuletzt geändert: 16.8.2011 14:29:05 von jakarta -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage