Ver Mensaje Individual
  #4 (permalink)  
Antiguo 05/08/2010, 10:43
Patonsky1
 
Fecha de Ingreso: agosto-2010
Mensajes: 10
Antigüedad: 13 años, 9 meses
Puntos: 2
Respuesta: Problema gordo con la funcion socket()

Cita:
Iniciado por tig0 Ver Mensaje
pero que error te da?

si estas trabajando con winsock puede que sea por no iniciar WSA. por cierto si estas trabajando con winsock imprime WSAGetLastError() que te dara el codigo de error y te dira exactamente cual es el problema
la estructura para almacenar los datos del cliente como es que la tienes ahi si no estas manejando las conexiones entrantes?
Estoy trabajando en linux.

Esa estructura no tiene mucho que ver, ya que el error se produce en
Código PHP:
handler socket(AF_INETSOCK_STREAM0);
    if (
handler == -1)
         return -
1
Cita:
2 cambios haria yo:
- El que creo haria todo funcionar: quitar el & a address.
if (bind(handler, (struct sockaddr *)&address, sizeof(address)) == -1)
quedaria
if (bind(handler, (struct sockaddr *)address, sizeof(address)) == -1)

y, por otro lado, desconozco la funcion getservbyport(), yo hubiera hecho
address.sin_port = htons(port);

Mirar tambien:
http://www.umiacs.com/sockaddr_inman.html
Si quito el &, me sale error de compilacion. De todos modos, el error se produce antes.

he usado "address.sin_port = htons(port);", aunque todo siga igual. El error está en la funcion socket(), ahora que lo pienso: no puede ser que mi sistema operativo no puede abrir socket por lo que sea??

--------------------------------------------------------------------------------------------------------------------------------------------------------------

Vaaaaaaaaaaale, ahora me encaja un poco mejor. El error no esta en socket, sino en bind(). Voy a investigarlo mas, aunque sigo perdidillo

Última edición por Patonsky1; 05/08/2010 a las 10:46 Razón: Error