Tôi đang sử dụng ứng dụng bảng điều khiển C++ trong cửa sổ. Tôi muốn sử dụng ứng dụng này trong trang web của tôi để đầu vào được lấy từ phía khách hàng mà sau đó gọi ứng dụng này để xử lý nó và đầu ra sẽ được chuyển tiếp đến máy chủ web. Tôi đã nghe nói về COM DLL nhưng không biết cách tạo nó cho ứng dụng của tôi.Cách sử dụng ứng dụng C++ trong máy chủ web?
Trả lời
Bạn nên thử tạo tập lệnh cgi, tùy thuộc vào nhu cầu của ứng dụng của bạn, bạn nên sử dụng FastCGI (không tạo toàn bộ ngữ cảnh quy trình mỗi khi bạn gọi nó).
- CGI
Bạn nên cài đặt một Apache Server và kích hoạt module cgi (kích hoạt nó bằng cách mặc định thường). Sau đó, bạn có thể phát triển một chương trình C++, đặt tệp thực thi bên trong thư mục CGI được định cấu hình, cấp quyền chính xác. Kịch bản CGI này nên làm cho một số loại thông tin liên lạc quá trình (nó có thể được thông qua ổ cắm hoặc bộ nhớ chia sẻ, đầu tiên là dễ dàng hơn). Tôi hy vọng bạn biết làm thế nào một script CGI hoạt động trong C/C++ + Apache, nhưng nó khá thẳng về phía trước, trong tóm tắt bạn nhận được môi trường bên trong stdin và đặt câu trả lời của bạn để stdout.
- FastCGI
Bạn có thể sử dụng apache, cài đặt các module fastcgi và tạo ra một chủ đề (nó có thể là bên trong vòng lặp chính của bạn cũng vậy, nhưng tôi không khuyên) bên trong chương trình của bạn và đính kèm các apache mô-đun FastCGI của máy chủ vào daemon của bạn.
Cuối cùng nhưng không kém phần quan trọng, bạn nên chạy daemon làm dịch vụ.
PS: Có một số tùy chọn khung (như cppcms và wt), nhưng kể từ khi bạn đã có daemon viết tôi nghĩ rằng nó sẽ là một nỗi đau trong ass để thay đổi mọi thứ (tất nhiên, nó phụ thuộc vào rất nhiều thứ , như độ phức tạp và kích thước của ứng dụng của bạn).
Sử dụng CGI: http://cgi.sourceforge.net/
Làm thế nào để lấy đầu vào từ phía khách hàng?
getenv("QUERY_STRING")
Cách chuyển tiếp đầu ra tới máy chủ web?
cout << "<html>\n";
Hello world CGI:
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
cout << "Content-type:text/html\r\n\r\n";
cout << "<html>\n";
cout << "<head>\n";
cout << "<title>Hello World - First CGI Program</title>\n";
cout << "</head>\n";
cout << "<body>\n";
cout << "<h2>Hello World! This is my first CGI program</h2>\n";
cout << "<p>REQUEST_METHOD = " << getenv("REQUEST_METHOD") << "</p>\n";
cout << "<p>QUERY_STRING = " << getenv("QUERY_STRING") << "</p>\n";
cout << "</body>\n";
cout << "</html>\n";
return 0;
}
Trong khi đề xuất mã có thể đưa ra câu trả lời cho câu hỏi, doea mã không chỉ cung cấp giải thích về lý do tại sao và làm thế nào nó được giải quyết các câu hỏi ban đầu. Vì vậy, hãy thêm một số giải thích để cung cấp thông tin chi tiết hơn về những gì cần thiết để giải quyết vấn đề ban đầu. – rpy
Thậm chí còn có nhiều khuôn khổ cho phát triển chúng, bao gồm Wt, cppcms, CSP, và những người khác. Việc thực hiện đường chính của FastCGI là trong C và trực tiếp hỗ trợ một số ngôn ngữ, bao gồm C++.
Tôi khuyên bạn nên sử dụng W + webtoolkit Wt (phát âm là Witty), tại http://www.webtoolkit.eu/.
Khuôn khổ này (với máy chủ ứng dụng tích hợp) cho phép bạn thiết kế các ứng dụng web về tiện ích và kết nối tín hiệu/khe cắm và để lại nhiều phần mềm trên web trong tay thư viện. Các ứng dụng kết quả là hướng đối tượng, được đánh máy đúng và hoàn toàn có thể bảo trì. Thư viện tự động phát hiện khả năng của trình duyệt và sử dụng cách thích hợp để hiển thị trang web, tránh lỗi trình duyệt. Đây là an example of aplication using wt
Đồng thời xem this thread.
Tôi đã có một ứng dụng giao diện điều khiển C++ mà tôi muốn kết nối với máy chủ web của mình. Nó sẽ chạy trên máy chủ nhưng lấy tài nguyên cục bộ của máy chủ. – Mavie
nhóm của tôi chỉ làm điều đó như một dự án lớp học, chúng tôi chủ yếu sử dụng cpp-netlib như một thư viện mạng, nhưng chúng tôi cũng sử dụng curlpp cho một số công cụ nhỏ. Chúng tôi đã lưu trữ nó trên thiết lập cá thể Amazon EC2 làm máy chủ cửa sổ và bạn hoàn toàn có thể tự do thực hiện giao diện người dùng mà bạn thực sự muốn. Đó là một dự án khá đơn giản nhưng việc đi theo con đường đó không hạn chế như tôi nghĩ. Hy vọng rằng sẽ giúp
- 1. Cách sử dụng cả máy chủ ứng dụng và máy chủ http trong ứng dụng web java
- 2. Sử dụng Django trừ máy chủ web
- 3. Máy chủ web/Servlet tốt cho ứng dụng web Clojure?
- 4. Cách đổi tên máy chủ ứng dụng trong Máy chủ ứng dụng WebSphere 6.0.2.23
- 5. Cách sử dụng C++ cho máy chủ apache
- 6. Sử dụng gmail làm máy chủ SMTP trong ứng dụng web Java chậm
- 7. Cách sử dụng Django với máy chủ web Tornado?
- 8. Sử dụng máy chủ webpack dev với ứng dụng PHP
- 9. ứng dụng web tồn tại trên cả máy chủ web IIS cục bộ và máy chủ web IIS Express
- 10. Cách sử dụng System.IdentityModel trong ứng dụng máy khách-máy chủ riêng
- 11. Ứng dụng máy khách/máy chủ Cocoa
- 12. Sử dụng Capistrano để triển khai ứng dụng Rails cho nhiều máy chủ web
- 13. Máy chủ ứng dụng web nhẹ cho PHP?
- 14. Sự khác biệt giữa các máy chủ ứng dụng .NET và máy chủ ứng dụng Java
- 15. Tạo cơ sở dữ liệu web/máy chủ để sử dụng với ứng dụng android
- 16. Python tự chứa ứng dụng web và máy chủ?
- 17. máy chủ web sử dụng nodejs cho ứng dụng góc của tôi
- 18. Sử dụng Máy chủ web mỏng với HTTP và HTTPS
- 19. Tại sao dev_appserver.py (máy chủ ứng dụng của máy chủ ứng dụng) treo chờ yêu cầu?
- 20. IIS có phải là máy chủ web hoặc máy chủ ứng dụng không?
- 21. Sử dụng xác thực Kerberos cho ứng dụng Máy chủ/Ứng dụng
- 22. socket() trả về 0 trong ứng dụng máy chủ ứng dụng khách C
- 23. Luồng trong Máy chủ ứng dụng
- 24. Sự khác biệt giữa máy chủ ứng dụng và máy chủ web?
- 25. Sử dụng Node.JS làm máy chủ REST và máy chủ web
- 26. Ứng dụng web sử dụng scikit-learn
- 27. mod_pagespeed và máy chủ ứng dụng java
- 28. Làm cách nào để chạy máy chủ web của ứng dụng Google trên Windows chính xác?
- 29. Cách tốt nhất để sử dụng memcache với ứng dụng một máy chủ là gì?
- 30. Cách nhúng máy chủ Bokeh trong ứng dụng Django
http://www.tutorialspoint.com/cplusplus/cpp_web_programming.htm – macroland
Máy chủ web nào bạn sẽ sử dụng? Apache? IIS? Bạn có kế hoạch để viết của riêng bạn? Nền tảng nào (Windows/Linux/BSD/BeOS)? – Neil
@Neil Tôi đang sử dụng Apache Tomcat trên cửa sổ. – Mavie