C/Visual C - warning accept de SOCKET

 
Vista:

warning accept de SOCKET

Publicado por Alejandro (1 intervención) el 19/07/2007 15:18:27
Hola a todos

Tengo un pequeño problema con un servidor socket que estoy tratando de desarrollar, el cual funciona aparentemente bien, el problema es cuando compilo me da un warning en la funcion accept() el cual estoy armandola de esta forma:
int main(){
int socket_servidor, socket_cliente;
struct sockaddr_in servidor,cliente;
int control;
int clientelen;
/*---------------------------------------------------------------------------------------+
| CARGAR EL ARCHIVO DE CONFIGURACION |
+---------------------------------------------------------------------------------------*/
control=fileConfig("../cfg/sdpagos.cfg", &configArchivo);
if (control==0){
printf("ERROR: El archivo de configuracion no puede ser leido o no existe.\n");
exit(1);
}

/*---------------------------------------------------------------------------------------+
| ACTIVAR EL SOCKET SERVER |
+---------------------------------------------------------------------------------------*/
/* Abrimos el socket */
socket_servidor=socket(PF_INET,SOCK_STREAM,0);

/* Rellenamos la estructura para pedir puerto */
servidor.sin_family=AF_INET;
servidor.sin_port=htons(configArchivo.puerto);
servidor.sin_addr.s_addr=INADDR_ANY;

/* Solicitud del puerto en el servidor */
if (bind(socket_servidor,(struct sockaddr *)&servidor,sizeof(servidor))==-1) {
printf("Error!! no puedo coger el puerto!!! puerto=[%d]\n",configArchivo.puerto);
exit(-1);
}
close(socket_servidor);

/* Abrimos el socket */
socket_servidor=socket(PF_INET,SOCK_STREAM,0);

/* Rellenamos la estructura para pedir puerto */
servidor.sin_family=AF_INET;
servidor.sin_port=htons(configArchivo.puerto);
servidor.sin_addr.s_addr=INADDR_ANY;

/* Solicitud del puerto en el servidor */
if (bind(socket_servidor,(struct sockaddr *)&servidor,sizeof(servidor))==-1) {
printf("Error!! no puedo coger el puerto!!! puerto=[%d]\n",configArchivo.puerto);
exit(-1);
}

/*socket_servidor=starSocketServer(configArchivo.puerto, &servidor);*/
/*---------------------------------------------------------------------------------------+
| ESCUCHAR EL SOCKET SERVER |
+---------------------------------------------------------------------------------------*/
listen(socket_servidor,1);
/*---------------------------------------------------------------------------------------+
| RECIBES UNA PETICION DEL CLIENTE AL SOCKET SERVER |
+---------------------------------------------------------------------------------------*/
while(1){
clientelen=sizeof (struct sockaddr );
socket_cliente = accept( socket_servidor ,(struct sockaddr *)&cliente ,&clientelen);
if(requestCliente(socket_cliente)==0){
printf("Error: Recibiendo por el socket\n");
};
close(socket_cliente);
}
return 0;
}

y me envia el siguiente warning:

Compilando...
sdpagos_pre.c: In function `main':
sdpagos_pre.c:492: warning: passing arg 3 of `naccept' from incompatible pointer type

si pueden ayudarme seria genial, muchas gracias de ante mano.
AB
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:warning accept de SOCKET

Publicado por Tom (619 intervenciones) el 22/07/2007 19:01:04
Name
accept - accept a connection on a socket
Synopsis
#include <sys/types.h>
#include <sys/socket.h>

int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
Description
...
...

Haz un cast a socklen_t si realmente te molesta el warning. Si no, déjalo así.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar