Gần đây, khi đọc một Socket Programming HOWTO phần sau nhảy ra khỏi tôi:Ổ cắm Nghị định thư Fundamentals
Nhưng nếu bạn có kế hoạch để tái sử dụng ổ cắm của bạn để chuyển tiếp, bạn cần phải nhận ra rằng không có "EOT" (Kết thúc chuyển) trên một ổ cắm. Tôi lặp lại: nếu một socket gửi hoặc recv trả về sau khi xử lý 0 byte, kết nối đã bị hỏng. Nếu kết nối không bị hỏng, bạn có thể chờ đợi trên recv mãi mãi, bởi vì các ổ cắm sẽ không cho bạn biết rằng không có gì nhiều hơn để đọc (cho bây giờ). Bây giờ nếu bạn nghĩ về điều đó một chút, bạn sẽ nhận ra một sự thật cơ bản của ổ cắm: tin nhắn phải là chiều dài cố định (yuck), hoặc là được phân cách (nhún vai) hoặc cho biết thời gian là (tốt hơn), hoặc kết thúc bằng cách tắt kết nối. Sự lựa chọn là hoàn toàn của bạn, (nhưng một số cách là righter hơn những người khác).
Phần này nêu bật 4 khả năng về cách giao thức socket "có thể được viết để truyền thông điệp. Câu hỏi của tôi là, phương pháp ưa thích để sử dụng cho các ứng dụng thực tế là gì?
Nói chung là tốt nhất để bao gồm kích thước thư với mỗi thư (có lẽ trong tiêu đề), vì bài viết nhiều hay ít khẳng định? Có bất kỳ tình huống nào mà phương pháp khác sẽ thích hợp hơn không?
Liên kết ở trên bị hỏng. – cdosborn
Đó là về lập trình socket python, liên kết mới là https://docs.python.org/2/howto/sockets.html –