30/09/2018, 17:47

Lập trình Socket với Java

Server và client tương tác với nhau qua những message, message đó gồm 2 phần header và body nhằm mục đích bảo toàn tập tin.
Bác nào biết về phần này giúp mình với. Thanks a lot

Đỗ Trung Quân viết 20:00 ngày 30/09/2018

Bác nào biết về phần này giúp mình với. Thanks a lot

Bạn muốn hỏi về vấn đề gì của socket?

Demon Hunter viết 20:00 ngày 30/09/2018

Header: Bao gồm những thông tin bắt buộc lúc nào cũng phải gửi lên tùy nhu cầu app của bạn ví dụ như protocol (để phân biệt đang dùng protocol bao nhiêu để parse gói tin cho hợp lý), encrypt (có mã hóa gói tin hay không), body length (độ dài của body),…
Body: Mỗi message đều có thông tin command, và data.
Mình ví dụ cho bạn 1 mẫu gói tin như sau:

protocol (1byte), encrypt (1byte), bodyLength (4byte), command (1byte), key (2byte), dataLenght(4byte), value(n byte), key…

Bạn sẽ parse gói tin như sau:

  • 6 byte đầu là header: đọc số byte tương ứng sẽ lấy được thông tin protocol, encrypt, bodyLength.
  • bodyLength là số byte của body dùng để chặt gói tin chúng ta có được thông tin message:
  1. byte (Byte) đầu tiên command cho biết bạn đang gọi lệnh gì ví dụ là login (với command = 1) chẳng hạn
  2. 2 byte (Short) tiếp theo là key của một tham số ví dụ như là username (key = 2) chẳng hạn
  3. 4 byte (Int) tiếp theo là dataLength để biết độ dài của giá trị username
  4. Từ độ dài của giá trị username sẽ lấy được số byte của giá trị username => từ byte array này parse thành string sẽ ra được username.

Tương tự từ bước 2->4 cho số byte tiếp theo ta lấy được thông tin password.

Bài liên quan
0