Potrzebuję zbudować lekki serwer http dla mojej aplikacji zasadniczo jest to serwer, który nasłuchuje na porcie i wyprowadza informację o statusie na żądanie brak dużego obciążenia, https, wymagana jest inna funkcjonalność czy jest jakiś Biblioteka C++, która pomogłaby mi zbudować serwer http:lekki serwer http C++
Odpowiedz
Wszystko tam jest (standard C++) ... gniazda, odczyt/zapis, czy TCP i inne funkcje dla UDP (jeśli go użyjesz), itp ... Nie ma nic więcej, czego potrzebujesz, ale funkcje sieciowe, reszta jest do zarządzania plikami (czytanie plików html i tak dalej) i wątków, jeśli chcesz iść dalej.
NAPRAWDĘ porad można przeczytać ten przewodnik:
To nic nie kosztuje i to wyjaśnia wszystko, czego potrzeba do wykonania tego małego serwera WWW.
Przypuszczam, że to jest zadanie, nie dostałem tego na moich zajęciach w sieci, ale niektórzy znajomi to zrobili, i jest to całkiem łatwe i przyjemne, jeśli masz trochę wiedzy C++.
Ale jeśli chcesz, żeby była zgodna z RFC - zamiast zwykłej pracy ze zwykłymi przeglądarkami - nie jest to zbyt banalne. – smilingthax
@smilingthax: Wiem, dlatego założyłem, że to zadanie na uczelni. Nie można tak naprawdę zakodować serwera WWW zgodnego z RFC w ciągu 1 lub 2 tygodni, co jest normalnym terminem, podczas gdy trzeba uczyć się innych rzeczy. Jeśli rzeczywiście jest to zadanie, prawdopodobnie chce mieć prosty wątek (lub nie, mój został wklejony) serwer WWW, który może obsłużyć w zasadzie GET, POST i kilka innych prostych rzeczy HTML i zarządzać niektórymi plikami HTML. Jeśli to nie jest zadanie ...dlaczego, na litość boską, ktoś chciałby zakodować własny serwer z tak wieloma lekkimi i bezpiecznymi implementacjami? – hfingler
"Wszystko tam jest (standard C++) ... gniazda, odczyt/zapis, jeśli TCP i inne funkcje dla UDP (jeśli go użyjesz) itp.". Czy jest coś do zrobienia z HTTP, jak parser nagłówka? –
Spójrz na http://code.google.com/p/mongoose/. Myślę, że jest oddzielony w bibliotece, która robi dokładnie to, co chcesz. Jednak jest napisane w C.
+1 Mój zespół używa mangusty do lekkich usług ... to ~ 5200 linii C, trzy pliki źródłowe, jedna strona podręcznika i setka Makefile. serwery main.c jako dobry przykład wywoływania mg_start(), aby uruchomić serwer w wątku tła .... –
Chciałbym skorzystać z okazji i zapytać, czy mangusta zna ograniczenia dla usług nie-lekkich. Czy jeśli starannie opracuję stronę internetową, czy można ją wykorzystać jako zamiennik PHP pod względem wydajności, czy też będzie ona opóźniona w stosunku do mnie, jeśli nie poprawię jego kodu źródłowego? –
Zgubiłeś mnie - PHP to język używany do dynamicznego generowania treści i łatwo wywoływalny przez demona HTTP (serwer WWW, np. Mangusta), ale nie jest demonem HTTP. Nie rozumiem, jak mangusta może zastąpić PHP, ponieważ jest to zupełnie odrębna bestia. Nadal można się zastanawiać, czy Apache + PHP może przewyższyć mongoose + PHP ... Nie wiem - nigdy nie próbowałem nawet używać PHP z mangustą. Obsługujemy naprawdę proste rzeczy: statyczny HTML i arkusze stylów. –
Istnieje libmicrohttpd. Musiałem napisać trochę kodu z klejem, żeby pasował do mojego celu; ale nigdy nie żałowałem.
Czy mogę zapytać, dlaczego potrzebował kleju? Wygląda idealnie. –
@ n2liquid: Chociaż ma kilka opcji użycia go z inną pętlą zdarzeń, nie było to wystarczające dla mojego przypadku (aplikacja GUI, tj. Glib/Gtk (mm)). Również interfejs API jest niższy niż serwowanie np. pełny katalog lokalny. – smilingthax
Ah, rozumiem. Osobiście nienawidzę bibliotek kradnących główną pętlę ... –
Jeśli chcesz korzystać z interaktywności, rozważ użycie opcji wt.
co zrobić z tymi boost.asio examples, masz 5 opcji od wersji 1.44. lub możesz wypróbować cpp-netlib, która jest zbudowana na boost.asio i ma być zawarta w boost.
Mangusta ma teraz C++ opakowania - patrz
Oto kolejny serwer waga, która może być stosowana wraz C++.
http://sourceforge.net/projects/miniweb/ Zobacz, jakie funkcje pasują do Twoich wymagań.
- 1. lekki serwer WWW Asyncio
- 2. Lekki serwer plików Localhost dla komputerów Mac
- 3. Serwer proxy HTTP HTTP
- 4. Wbudowany serwer HTTP w aplikacji Swing Java
- 5. Serwer HTTP Programowanie
- 6. Prosty serwer http
- 7. Serwer HTTP za NATs
- 8. Serwer HTTP Http i uszkodzone rury
- 9. Jak działa serwer proxy http?
- 10. serwer HTTP zawiesza się podczas przyjmowania pakietów
- 11. WinRT MVVM Lekki przykładowy projekt
- 12. Jak solidne jest nodejs jako serwer http?
- 13. Jak skonfigurować serwer proxy HTTP dla svn
- 14. Node.JS: Jak utworzyć serwer czatu HTTP?
- 15. Serwer zwrócił kod odpowiedzi HTTP: 400
- 16. Golang: http serwer pozostawiając otwarte goroutines
- 17. Określanie obsługiwanej wersji HTTP przez serwer WWW
- 18. Serwer HTTP do testów jednostkowych w Delphi
- 19. Serwer HTTP Python obsługujący kodowanie porcjowane?
- 20. Akka HTTP: Blokowanie w przyszłości blokuje serwer
- 21. Czy istnieje gotowy serwer HTTP do debugowania?
- 22. Biblioteka strumieniowania HTTP IP/iPhone'a lub serwer
- 23. Python serwer http, wiele jednoczesnych żądań
- 24. C# NET HTTP.SYS serwer WWW
- 25. Lekki analizator składni SAX XML w języku C++
- 26. Serwer FTP napisany w C#
- 27. C# serwer push iPhone?
- 28. Czy Lwt oznacza "Wątek Lekki"?
- 29. Lekki edytor SQL dla Eclipse
- 30. Jak napisać lekki wykonywalny jak uTorrent
@ user490710 spojrzeć na boost..Jeśli Windows, dlaczego nie WinHTTP? – yadab
Istnieje również biblioteka sieciowa http://prog-xp.blogspot.fr/2011/01/creating-simple-web-server-with-pion.html – Offirmo
Poco (http://pocoproject.org) może być opcja. Ma gotowy serwer HTTP. – Eonil