Programación General => C/C++ => Mensaje iniciado por: mathew en Miércoles 3 de Junio de 2009, 00:18
Título: Winsock RAW sockets
Publicado por: mathew en Miércoles 3 de Junio de 2009, 00:18
Hola,
Estoy usando RAWSOCKETs para conectar dos programas. EL envio funciona perfectamente, y puedo ver los paquetes que llegan a la maquina destino, pero esta no captura ningun paquete, se queda en la funcion recvfrom() bloqueada e ignorando todos los paquetes que llegan....
No se si tengo que hacer algo mas... recvfrom() simplemente se bloquea como si ningun paquete llegase. Tambien he intentado WSAIoctl -SIO_RCVALL aunque siempre tengo un error 10022.
POR FAVOR necesito ayuda!!! Gracias
Título: Re: Winsock RAW sockets
Publicado por: punteroNULO en Miércoles 3 de Junio de 2009, 19:07
puede que el fallo este en:
Código: C
se.sin_port=0;
puesto que no le indicas en que puerto tiene que escuchar, sino que escoga uno libre cualquiera.
lo lógico es especficar un puerto. Por ejemplo:
Código: C
se.sin_port= htons(26000);
y luego enviar los mensajes a ese puerto.
Título: Re: Winsock RAW sockets
Publicado por: mathew en Jueves 4 de Junio de 2009, 14:08
Gracias por tu respuesta. He estado probando eso tambien y parece que no es el problema.... Ademas que como uso directamente IP no deberia necesitar ningun puerto... y el emisor no esta enviando los paquetes a ningun puerto especifico... Alguna sugerencia??
Título: Re: Winsock RAW sockets
Publicado por: punteroNULO en Viernes 5 de Junio de 2009, 19:48
Si no quieres recibir por un puerto en concreto sino capturar todo lo que se recibe creo que debería quitar la función bind. Prueba a comentar ese trozo de código a ver si funciona.
Título: Re: Winsock RAW sockets
Publicado por: mathew en Lunes 8 de Junio de 2009, 15:27
Cita de: "punteroNULO"
Si no quieres recibir por un puerto en concreto sino capturar todo lo que se recibe creo que debería quitar la función bind. Prueba a comentar ese trozo de código a ver si funciona.
Mmm... no. Sin el bind() sigue sin recibir nada : ( Quiza el truco este en el propio bind, pero lo he configurado de 1000 maneras sin exito... realmente estoy atascado.