Estoy usando C# .Net y la clase Socket del espacio de nombres System.Net.Sockets. Estoy usando los métodos de recepción asíncrona. Entiendo que esto se puede hacer más fácilmente con algo así como un servicio web; esta pregunta surge de mi curiosidad más que de una necesidad práctica.C# stream ¿recibió todos los datos?
Mi pregunta es: supongamos que el cliente está enviando algún objeto serializado binario de una longitud desconocida. En mi servidor con el socket, ¿cómo sé que se ha recibido el objeto completo y que está listo para la deserialización? He considerado anteponer el objeto con la longitud del objeto en bytes, pero esto parece innecesario en el mundo .Net. ¿Qué pasa si el objeto es más grande que el buffer? ¿Cómo podría saber, 'hey, tengo que cambiar el tamaño del buffer porque el objeto es demasiado grande'?