Tôi đang sử dụng 'protobuf' cho chương trình mạng C/S bằng TCP.có protobuf cần tiêu đề gói mạng không?
đây là các bước của tôi cho khách hàng:
1, dữ liệu gói vào một 'protobuf'
2, có kích thước tính bằng byte của gói và xây dựng một khung thời gian-prefix
3, viết khung + gói đến socket
và sau đó máy chủ:
1, đọc khung chiều dài prefix từ ổ cắm và nhận được chiều dài N
2, đọc N byte từ ổ cắm và điền dữ liệu vào protobuf dụ
3, nhận được "giá trị" s từ protobuf bởi "chìa khóa" s
nó có vẻ hơi phức tạp Tôi nghĩ, là có một loại khung tiền tố có độ dài được tạo tự động cho protobuf, sau đó tôi không cần tự mình xây dựng. hoặc bất cứ điều gì khác tôi có thể làm để làm sạch mã?
Câu hỏi của bạn không rõ ràng/không rõ ràng. Bạn đang sử dụng TCP? UDP? IP? hoặc một số giao thức mạng khác? Thật khó để nói protobuf là gì. Nó là một cấu trúc hay chỉ là một blob dữ liệu? Hầu hết các ứng dụng C/S sẽ yêu cầu một số trợ giúp để tìm hiểu tính chính xác của dữ liệu được gửi hoặc nhận. Bạn cần phải cụ thể hơn và hiển thị mã. –
cảm ơn đề xuất của bạn, tôi sẽ làm cho nó rõ ràng hơn. 'protobuf' đề cập cụ thể đến dự án mã nguồn mở google. – Shawn