Mình muốn bổ xung một số điều
1. Do server phải đáp ứng được khi có nhiều client kết nối đến nên việc lắng nghe kết nối của server được đặt trong một vòng lặp vô hạn, bất cứ khi nào thấy có một kết nối thì sẽ tạo ra một luồng riêng để xử lí kết nối này với client. Đồng thời bên server phải quản lý tất cả các kết nối này (cho vào một mảng chẳng hạn) để phục vụ khi các client muốn trao đổi với nhau
2. Bên phía client cũng tạo ra một luồng riêng cũng đặt trong vòng lặp vô hạn để trao đổi với server. Chú ý là vòng lặp vô hạn ở 2 phía khác hoàn toàn về mục đích
Buồn ngủ quá, viết vậy chả biết có gì sai sót không