Ich verwende C# .Net und die Socket-Klasse aus dem Namespace System.Net.Sockets. Ich verwende die asynchronen Empfangsverfahren. Ich verstehe, dass dies leichter mit etwas wie einem Web-Service getan werden kann; Diese Frage ergibt sich eher aus meiner Neugier als aus praktischer Notwendigkeit.C# stream hat alle Daten empfangen?
Meine Frage ist: Angenommen, der Client sendet ein binär-serialisiertes Objekt unbekannter Länge. Wie kann ich auf meinem Server mit dem Socket wissen, dass das gesamte Objekt empfangen wurde und für die Deserialisierung bereit ist? Ich habe überlegt, das Objekt mit der Länge des Objekts in Bytes voranzustellen, aber das scheint in der .NET-Welt unnötig. Was passiert, wenn das Objekt größer als der Puffer ist? Wie sollte ich wissen, 'hey, muss die Größe des Puffers ändern, weil das Objekt zu groß ist'?