Tôi đang tìm mã ví dụ cho một diễn viên libcppa lắng nghe trên một cổng để kết nối mới và sau đó sinh ra các tác nhân mới để xử lý kết nối mới.diễn viên libcppa sinh ra các diễn viên trên các kết nối ổ cắm
Mọi trợ giúp sẽ được đánh giá cao.
Cảm ơn
Tôi đang tìm mã ví dụ cho một diễn viên libcppa lắng nghe trên một cổng để kết nối mới và sau đó sinh ra các tác nhân mới để xử lý kết nối mới.diễn viên libcppa sinh ra các diễn viên trên các kết nối ổ cắm
Mọi trợ giúp sẽ được đánh giá cao.
Cảm ơn
Bạn có muốn diễn viên đọc/ghi trực tiếp từ/đến ổ cắm không? Tóm tắt IO dựa trên diễn viên thích hợp chưa được triển khai, nhưng nó là một tính năng được lên kế hoạch cho phiên bản tiếp theo của libcppa (hãy chú ý theo dõi). Nếu bạn chỉ muốn phân phối các diễn viên của bạn thông qua mạng, hãy xem cặp chức năng publish/remote_actor.
/chỉnh sửa:
Còn bây giờ, bạn có thể sử dụng một số tiện ích libcppa của để có được một phiên bản chặn và chạy:
using namespace cppa;
spawn<detached>([] {
auto ack = network::ipv4_acceptor::create(4242);
for (;;) {
auto spair = ack->accept_connection();
spawn<detached>([spair] {
// spair.first is the input stream
// spair.second is the output stream
// please see http://neverlord.github.io/libcppa/namespacecppa_1_1network.html
});
}
);
này không quy mô tốt, bởi vì bạn sẽ tạo ra một thread cho mỗi kết nối, và nó không phải là rất thanh lịch. Ngoài ra, thật khó để ghép kênh giữa các tin nhắn nhận được thông qua ổ cắm và tin nhắn nhận được từ các tác nhân khác. Một giải pháp thanh lịch hơn đang trên đường đi. ;)
Cảm ơn @neverlord. Tôi thực sự muốn một diễn viên cho mỗi kết nối, do đó, nó hoạt động tuyệt vời và sau đó tôi sử dụng bỏ phiếu để nó không chặn. Hãy tiếp tục phát huy. Không thể chờ đợi để thử các diễn viên dựa trên IO :) Bất kỳ kế hoạch về việc thêm các diễn viên dựa trên zeromq? –
ZeroMQ không có trong danh sách việc cần làm, nhưng libcppa là mã nguồn mở. Có thể bạn muốn đóng góp triển khai. ;) – neverlord