Commençons par les threads : tu ferme la socket pendant sont utilisation par un autre thread. Il te faudrait un mutex dessus pour faire propre.
Oui, c'est le but. Car recvmsg est un appel bloquant, donc pour l'annuler, un close sur la socket me semblait un bonne idée.
je pense que ton problème est l'utilisation de shutdown. C'est une fonction servant à fermer une connexion, or les socket raw sont des socket non connectées.
Comme mis en commentaire dans mon source, c'est normal qu'il ne marche pas.
Ce que tu peux faire c'est de la fermer avec un close, auquel cas recvmsg te retournera une erreur, ce qui est normal.
C'est là ou ça ne marche plus. Le recvmsg ne termine pas !
[^] # Re: Threads
Posté par DeadMaXfr . En réponse au message Raw socket (BUG). Évalué à 1.
Commençons par les threads : tu ferme la socket pendant sont utilisation par un autre thread. Il te faudrait un mutex dessus pour faire propre.
Oui, c'est le but. Car recvmsg est un appel bloquant, donc pour l'annuler, un close sur la socket me semblait un bonne idée.
je pense que ton problème est l'utilisation de shutdown. C'est une fonction servant à fermer une connexion, or les socket raw sont des socket non connectées.
Comme mis en commentaire dans mon source, c'est normal qu'il ne marche pas.
Ce que tu peux faire c'est de la fermer avec un close, auquel cas recvmsg te retournera une erreur, ce qui est normal.
C'est là ou ça ne marche plus. Le recvmsg ne termine pas !
Comment faire ?