Nous développons une application réseau multiplateforme qui doit envoyer et recevoir des données via TCP. Sur Linux, nous utilisons select()
pour attendre à la fois envoyer et recevoir pour s'assurer que le socket est prêt. Cependant, sur OSX, la sélection pour la lecture prend un temps absurde pour revenir - plus de 20 secondes. select()
n'est pas le moment de sortir - notre délai d'attente est de 60 secondes et les données reviennent, il est juste ridiculement lent. Cela arrive seulement pour les lectures, pas les envois. Le réseau semble être bon (encore une fois, la machine Linux sur le même réseau ne semble pas avoir les mêmes problèmes).l'appel système select() socket sur mac osx prend beaucoup de temps pour les lectures
Quelqu'un a-t-il connaissance d'avertissements utilisant la programmation de socket dans OSX?
Avez-vous essayé d'utiliser tcpdump ou un outil similaire pour vérifier que les données arrivent à temps? Cela pourrait être un problème réseau et non un problème 'select()'. –
wow, tu as raison! le serveur attend 30 secondes pour envoyer - mon mauvais. merci pour l'aide – wickedchicken