Tôi không quen với mô-đun tăng cường đặc biệt này. Nhưng, nếu bạn đang tìm kiếm một cách để tạo một bộ đệm hoạt động giống như một kho lưu trữ các loại, tôi sẽ tạo một luồng khác để quản lý nó. Chủ đề có thể LIFO luồng đến, xử lý các yêu cầu lọc và quản lý bộ đệm. Giữ nó trên một thread riêng biệt có nghĩa là nó sẽ chú ý đến các gói dữ liệu đến trước khi bộ đệm hệ thống chạy ra ngoài, vì vậy bạn không phải lo lắng về việc thiếu bất cứ thứ gì. Một hàng đợi tin nhắn có thể được tạo ra để dàn xếp giữa các luồng.
Điều đó nói rằng, cuối cùng, có lẽ dễ nhất là hãy nhìn vào một thư viện viết tay trước để xử lý nó và tiết kiệm cho mình một chút thời gian. Hãy xem this post.
Sự cố là khó sử dụng luồng trên ổ cắm không đồng bộ. Ví dụ, bạn đọc một chuỗi từ luồng cho đến khi không có chuỗi nào trong bộ đệm. Nhưng làm thế nào bạn có thể (hoặc dòng) biết nếu nó thực sự là kết thúc của chuỗi? Phần còn lại có thể đến trong một gói khác, và không có cách nào để biết khi nào, hoặc thực sự nếu, nó sẽ được chuyển giao. –
Vì tò mò bạn đã xem xét điều này? http://stackoverflow.com/questions/3668128/how-to-create-a-boost-ssl-iostream – NothingMore
@JoachimPileborg: Rất dễ dàng để biết - cho đến khi bạn đến cuối luồng hoặc lỗi trên ổ cắm. Phần còn lại là logic nghiệp vụ phụ thuộc nhiều vào giao thức cấp cao đang được sử dụng. Điều đó đang được nói, đệm là cần thiết, nhưng có C++ iostream cho đó là braindead. Libevent cung cấp API đệm mục đích chung tốt đẹp vì lý do đó. –