2013-02-13 34 views
8

Tôi đang làm việc với libcurl. Nó rất tốt (như khách hàng) và tôi đã sử dụng để mở một ổ cắm đến một máy chủ và sau đó gửi các gói http của tôi.Cách phát triển máy chủ http với libcurl

Tôi tự hỏi liệu có thể phát triển máy chủ http bằng libcurl hay không. máy chủ http sẽ lắng nghe trên một cổng nhất định sau đó khi nó nhận được một gói http sau đó máy chủ http trả về một nhu cầu để xác thực thông báo.

Tôi đã thực hiện một số nghiên cứu về stackoverflow và trong trang web curl nhưng không có kết quả.

Có thể thực hiện điều đó bằng libcurl không? Và làm thế nào để làm điều đó?

+1

cURL là thư viện phía máy khách, không phù hợp để phát triển máy chủ. –

Trả lời

9

Để lặp lại những gì người khác đã nói: không, libcurl không phải là cho các máy chủ. Nó thậm chí còn được nói trong số curl FAQ:

5.17 Tôi có thể viết máy chủ bằng libcurl không?

No. libcurl không cung cấp chức năng hoặc khối xây dựng để xây dựng bất kỳ loại nào của máy chủ giao thức internet. libcurl chỉ là một thư viện phía máy khách. Đối với thư viện máy chủ, bạn cần tiếp tục tìm kiếm ở nơi khác nhưng có nhiều mã nguồn mở tốt cho hầu hết các giao thức mà bạn có thể muốn có máy chủ. Và thực sự có những con số độc lập đã được kiểm nghiệm và chứng minh trong nhiều năm. Bạn không cần phải tái tạo lại chúng!

0

này không dường như mục đích của libcurl, như bạn đã nói hành vi libcurl như một khách hàng, hãy xem để http://www.gnu.org/software/libmicrohttpd/

+0

Tôi thấy mã nguồn và có vẻ là một chương trình lớn. Tôi m tìm kiếm một mã nhỏ để bao gồm mã của tôi chỉ để làm việc cho trường hợp cụ thể – MOHAMED

+0

là nó có thể extaract một số chức năng từ mã bạn cung cấp inorder để làm điều đó? – MOHAMED

2

Bạn cần một số HTTP máy chủ thư viện (kể từ libcurl chỉ là một HTTP client librart) Tôi sẽ đề nghị sử dụng libonion nhưng có một số khuôn khổ HTTP máy chủ khác (libmicrohttpd, POCO & Wt trong C++,. ...).

HTTP là một giao thức phức tạp, ngay cả khi mã hóa một máy chủ cho một tập hợp con nhỏ (như đồng bằng GET yêu cầu, không có tất cả các tính năng hữu ích như các yêu cầu điều kiện, mã hóa & nén, vv ...) của nó là khả thi một cách hợp lý. Do đó, tôi khuyên bạn nên sử dụng thư viện máy chủ HTTP chính thức và không thể là thư viện nhỏ.