Hic em đang làm bài tập môn lập trình socket, nhưng đọc bài tập thấy tù mù quá. Hu hu hu. Mọi người giúp em về hướng lập trình với? Hoặc ai có code tương tự thì post cho em học hỏi với. Em xin cảm ơn nhiều ạ
Code:
Thiết kế và lập trình một hệ thống client – server thực hiện các chức năng trao đổi các bản tin dưới dạng chuỗi ký tự thông qua TCP socket.
Hệ thống gồm các phần: chat client và chat server.
Có 3 loại bản tin được trao đổi giữa client và server: 
•	Connection setup: Khi một người sử dụng đánh dòng lệnh remote-chat <địa chỉ IP server>:<địa chỉ port> <địa chỉ IP của client bị gọi>:<địa chỉ port>, một kết nối TCP sẽ được thiết lập giữa client đó và chat server. 
Sau khi kết nối TCP được thiết lập, client gửi bản tin connection setup, bao gồm các trường: 
-Trường nhận dạng bản tin: là một số nguyên 32 bit. Với bản tin connection setup thì trường này có giá trị 0. 
-	Trường địa chỉ: dài 6 byte bao gồm địa chỉ IP của client bị gọi (4 byte) và địa chỉ port của client bị gọi (2 byte). 
Khi nhận được bản tin connection setup, server sẽ thiết lập một kết nối TCP với client bị gọi với địa chỉ IP và địa chỉ port đã được chỉ ra trong bản tin connection setup. 
•	Data exchange: được sử dụng để trao đổi dữ liệu giữa client và server. Bao gồm các trường: 
-	Trường nhận dạng bản tin: là một số nguyên 32 bit. Với bản tin data exchange thì trường này có giá trị 1. 
-	Trường độ dài dữ liệu: là một số nguyên chỉ ra đồ dài của bản tin text. 
-	Trường dữ liệu: chứa bản tin text cần trao đổi. Khi nhận được dữ liệu được gửi từ một client, chat server phải chuyển bản tin text đó đến client phía bên kia, cũng sử dụng bản tin data exchange. 
•	Connection teardown: khi người sử dụng bấm Ctrl-C thì bản tin connection teardown sẽ được gửi trước khi chương trình ở phía client kết thúc. Connection teardown gồm 1 trường: 
-	Trường nhận dạng bản tin: là một số nguyên 32 bit. Với bản tin connection teardown thì trường này có giá trị 2. 
Khi nhận được bản tin này, chat server sẽ gửi bản tin đến client tương ứng, client sau khi nhận được connection teardown thì hủy bỏ kết nối TCP với server và kết thúc chương trình.