Voici un scénario avec des sockets asynchrones que je ne comprends pas tout à fait ... J'ai 2 sockets Tcp, une socket client & une socket serveur. Mon socket serveur est lié & en écoute sur un port.C# Socket.BeginSend AsyncCallback comportement (timeout?)
Mes sockets client se connectent au socket serveur (en utilisant BeginConnect/EndConnect). J'envoie ensuite un message au serveur en utilisant BeginSend(). Du côté serveur, je ne fais pas de Receive() ou BeginReceive().
Ce qui se passe est que mon AsyncCallback spécifié pour mon appel BeginSend s'invoqué & son IAsyncResult me dit qu'il a terminé & l'appel à Socket.EndSend() ne soulève pas d'exception ...
Y at-il quelque chose qui Je ne reçois pas ou ne devrait pas mon AsyncCallback être appelé seulement si l'appel de BeginSend envoie réellement quelque chose au serveur (ie: rappel appelé après que le serveur ait reçu tous les octets)? Si aucune réception n'a été effectuée sur le serveur, mon rappel ne devrait-il pas être appelé après l'expiration de sendtimeout et mon appel à Socket.EndSend déclencherait alors une exception?
Merci
Attendez quoi? Le rappel beginends est appelé avant de recevoir le TCP ACK du serveur? Je ne suis pas sûr que j'aime ça. – Chris