I/O send/recv bloquent process - C - Programmation
Marsh Posté le 18-07-2007 à 14:43:39
t'as un problème read/write (équivalent à recv/send à un flag près) ne bloque que le thread actuel. tu as un problème ailleurs.
Marsh Posté le 18-07-2007 à 15:05:05
Ta phrase est vraie dans tous les cas ou c'est seulement avec un flag specifique specifie a l'initialisation de la socket ?
Marsh Posté le 18-07-2007 à 15:18:54
si tu utilises 0 c'est pareil. On a très rarement besoin d'utiliser les flags (OS-dépendant, le plus commun étant pour faire de l'OOB), d'où le fait que read/write sont tout à fait satisfaisants
Marsh Posté le 18-07-2007 à 12:40:51
Le context: J'ai une application multi-thread, chaque thread a une connexion sur un(e?) socket. Actuellement j'utilisais read/write pour travailler sur chaque connexion, mais je vais passer tres prochainement a send/recv pour avor un meilleur controle des donnees envoyees.
Le probleme: j'ai actuellement des actions bloquantes read/write pour mon process (je n'utilise pas encore select(), mais ca va venir aussi) et du coup ca empeche mes autres threads de faire leur tache.
Il me semblait qu'il existait des I/O read/write thread-independent, mais j'arrive pas a remettre la main sur ces fonctions.
Pour resume ce que je voudrais a terme :
- select() pour gerer le timeout
- send/recv qui ne bloquent pas mon process
Parce que meme si j'ai un select, j'aurais quand meme a chaque entree dans send/recv un blocage des autres threads du process non ?