Hola. Me surgió la siguiente duda, quizas a alguien ya le surgió y pueda arrojar un poco de luz:
Según tengo entendido cuando se ejecuta un recvfrom sobre un socket y no hay ningun paquete en el socket, el proceso se bloquea hasta que llega un paquete.
En cambio el sendto no es bloqueante (por defecto).
En el codigo de nuestro servidor tenemos dos hilos, de los cuales uno hace un recvfrom y el otro un sendto, pero sobre el mismo socket.
La duda que me surge es:
si el hilo receptor hace un recvfrom en el socket y queda bloqueado por que no hay ningun mensaje, ¿que pasa cuando el segundo hilo intenta hacer un sendto ? ¿se bloquea tambien pues el primer hilo posee el socket ?
Según lo que veo al ejecutar el servidor me da a pensar que es así, pues veo que el 2do hilo continua luego de que llega un paquete y el recv finaliza. ¿es asi?
Si no es así otra opción sería que el primer hilo libera el socket al bloquearse y asi el segundo hilo podría usar el socket para hacer el sendto. Pero no creo que sea correcta esta opción pues si el socket es un recurso como cualquier otro entonces el primer hilo lo seguiria poseyendo cuando pasa a estado bloqueado.
Se aprecia cualquier aporte. Saludos.