Estoy usando 'protobuf' para el programa de red C/S usando TCP.¿necesita protobuf un encabezado de paquete de red?
aquí es mis pasos para el cliente:
1, los datos de paquete en un 'protobuf'
2, obtener el tamaño en bytes del paquete y construir un marco de longitud-prefix
3, escribir el bastidor + empacar al enchufe
y entonces el servidor:
1, leer marco longitud-prefijo de toma de corriente y obtener la longitud N
2, leído N bytes de zócalo y llenar los datos en caso protobuf
3, obtener el "valor" s de protobuf por "clave" s
parece un poco complicado pienso, ¿hay algún tipo de marco de prefijo de longitud autogenerado para protobuf, entonces no necesito construir uno solo. o cualquier otra cosa que pueda hacer para hacer un código más limpio?
Su pregunta es ambigua/confusa. ¿Estás usando TCP? UDP? IP? o algún otro protocolo de red? Es difícil saber qué es protobuf. ¿Es una estructura o simplemente una masa de datos? La mayoría de las aplicaciones C/S requerirán cierta ayuda para determinar la cordura de los datos que se enviarán o recibirán. Debes ser más específico y mostrar el código. –
gracias por su sugerencia, voy a dejarlo más claro. 'protobuf' se refiere en particular a un proyecto de fuente abierta de google. – Shawn