J'utilise C# .Net et la classe Socket de l'espace de noms System.Net.Sockets. J'utilise les méthodes de réception asynchrones. Je comprends que cela peut être plus facilement fait avec quelque chose comme un service Web; cette question est née de ma curiosité plutôt que d'un besoin pratique.C# stream a reçu toutes les données?
Ma question est: supposons que le client envoie un objet binaire-sérialisé d'une longueur inconnue. Sur mon serveur avec le socket, comment puis-je savoir que l'objet entier a été reçu et qu'il est prêt pour la désérialisation? J'ai envisagé de préfixer l'objet avec la longueur de l'objet en octets, mais cela semble inutile dans le monde .Net. Que se passe-t-il si l'objet est plus grand que le tampon? Comment pourrais-je savoir, 'hé, dois redimensionner le tampon parce que l'objet est trop grand'?