Truyền file TCP/IP: làm thế nào để server có thể hiển thị được cấu trúc gói tin mà client chuyển đến?

Mình đang có một vấn đề cần giải quyết đó là làm thế nào để server có thể hiển thị được cấu trúc gói tin mà client chuyển đến? Mọi người giúp mình với ạ!

Hi Cuong Le.
Cái đó người ta gọi là giao thức. Bạn cần thống nhất trước giữa hai bên.

4 Likes

Vấn đề nằm ở tầng Application :smiley: muốn hiện hex đọc cũng được nhưng thường phải có ý nghĩa gì đó.

5 Likes

để 2 bên là client và sever cùng hiểu thì phải có một form chung, đó gọi là protocol trong trường hợp này là giao thức TCP/IP dùng ở tầng 4 transport trong mô hình OSI

4 Likes

Cảm ơn bạn!!!
Bạn giải thích rõ hơn giúp mình với được không ạ!

Trong trường hợp của bạn Client đóng vai trò là SenderServer đóng vai trò là Receiver, thì khi bắt đầu gửi sender phải thông báo cho receiver rằng là tui muốn gửi 1 file, trong đó có các thông tin cơ bản của file là tên filedung lượng tính bằng byte của file đó. Bước thứ 2 server sẽ yêu cầu client gửi mảng bytes đầu tiên chứa các phần của file đó(cắt file thành nhiều mảng byte) cho đến khi server nhận đủ số byte mà client đã thông báo ban đầu. Lưu ý: từ đầu đến cuối thì server lẫn client đều sử dụng 1 form (cấu trúc của mảng byte để giao tiếp) ví dụ:
PACKET = [—Init(1bytes)–][—Command(2bytes)—][—spearator(1byte)—][—data length(4bytes)----][—data(2^32-1 bytes)—]
Init có thể là 1 giá trị khởi tạo để nhận biết là 1 PACKET đang dk gửi đến
Command: có thế là yêu cầu gửi tên file, dung lượng file hay, data của file, hay là yêu cầu client gửi tiếp phần tiếp theo của file…
Spearator: Khoảng cách với đoạn data giá trị 0x00
Datalength: số lượng byte của data phía sau
Data: đoạn chứa dữ liệu, có thể là tên file, kích thước file hoặc là 1 đoạn cắt nào đó của file

5 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?