Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 2 của 2
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    [C++ socket] Server gửi dữ liệu tới Client bị thiếu, tại sao ?


  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Đọc sơ qua code của bạn, thấy nhiều thứ không ổn. Vấn đề quan trọng nhất là thiếu Header cho gói tin dữ liệu. Vì bạn gửi dữ liệu dạng theo các bytes. Bên client có thể đọc nhầm dữ liệu. Nên tổ chức thành gói tin. Có header gồm 2 phần signal, và lenght_of_packet, bổ sung thêm mã CRC nếu thấy cần. Client khi có dữ liệu đến, Client sẽ đọc vào phần header, kiểm tra chiều dài của packet, sau đó đọc gói tin này vào. Nếu làm như vậy sẽ không xảy ra hiện tượng, thừa - thiếu dữ liệu.
    P/s: Header là một struct.
    VD:


    Mã:
    struct myHeader_t{unsigned short signal;unsigned short length;};

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •