Tạo một kết thúc web cho một chương trình C ++


9

Tôi đã tự hỏi điều gì sẽ là phương pháp tốt nhất để tạo một kết thúc web để giao tiếp với chương trình C ++ trên máy chủ. Lúc đầu, tôi chỉ nghĩ đơn giản là sử dụng shell thực thi từ ngôn ngữ phía máy chủ web (như shell_exec()trong PHP), nhưng tôi đã tự hỏi liệu có cách nào "tốt hơn" không. Có lẽ một cái gì đó bản địa hơn hoặc đây là một thực hành xấu vì một số lý do?


Nên có trên stackoverflow không ở đây AFAIK. Có thể sai mặc dù.
Enders

4
Tôi cho rằng nó sẽ tốt hơn cho các lập trình viên. Vì nó mang tính lý thuyết hơn và không thực sự cần một câu trả lời dựa trên mã. Điều này dựa nhiều hơn vào các ý tưởng xung quanh việc đạt được nhiệm vụ này, không phải là một phương pháp chính xác về cách thực hiện nó.
Ben

Câu trả lời:


7

Lập trình web với C ++ đã biến mất khá nhiều. Cách truyền thống để làm điều đó là với CGI. Xem ở đây để xem hướng dẫn .

Hoặc bạn có thể thêm một máy chủ web nhúng như mongoose

Tuy nhiên, tôi nghĩ việc sử dụng passthru của PHP là dễ nhất. Ví dụ: trên một trong các trang web của tôi, tôi có chương trình C ++ tạo hình ảnh, để hiển thị hình ảnh tôi làm:

<?

header("content-type: image/png"); 

$temp = $_GET["temp"];
$rain = $_GET["rain"];

passthru("/home/rrabien/marker $temp $rain")

?>

Điều này có vẻ khá tốt với tôi, nhờ chức năng passthru. Tôi chưa bao giờ nghe nói về điều đó. Tất cả trong tất cả điều này là những gì tôi đã có trong đầu, nhưng thật tốt khi biết rằng đây thực sự là cách tốt nhất để đạt được những gì tôi mong muốn. Cảm ơn FigBug.
Ben

KHÔNG sử dụng passthru mà không thoát chính xác đầu vào, hoặc bạn đang yêu cầu được hack. Đọc liên kết này: acunetix.com/websitesecurity/php-security-1.htm
Joeri Sebrechts

Đây là cách tôi làm, nhưng tôi sử dụng django. Thay vì chuyển trực tiếp đến ứng dụng c ++, tôi có một trình bao bọc python để khởi chạy ứng dụng c ++ của mình hoặc giao tiếp qua IPC hoặc mạng với một trình nền bằng cách sử dụng một số api.Works nội bộ thực sự tốt.
michalmocny

3

Wt, bộ công cụ web C ++ là một thư viện với một tập hợp các lớp giúp việc thêm giao diện web có độ phức tạp vào chương trình C ++ dễ dàng hơn nhiều. Nó chỉ tập trung vào các khía cạnh giao diện web và không xâm phạm vào chương trình của bạn.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.