Google jest dobrze znany z absurdalnej ilości C ++, którą kodowali przez lata. Popraw mnie, jeśli się mylę, ale duża część podstawowej wyszukiwarki Google jest napisana w C ++, prawda? Jak wziąć program napisany w C ++ i połączyć go ze stroną internetową?
Uwaga: nie szukam sposobu, w jaki Google to robi, tylko tego, jak można to zrobić w ogóle.
web-development
c++
web-applications
Nauka maniakalna
źródło
źródło
Odpowiedzi:
Każde oprogramowanie sieciowe wysyła i odbiera wiadomości tylko przez gniazda, to wszystko. Możesz do tego użyć dowolnego języka, nie jest on specyficzny dla języków.
Jednak lepiej nie wymyślać na nowo koła tego rodzaju pracy, więc większość języków używanych do tworzenia aplikacji internetowych ma swój zestaw ram, który zapewnia podstawową komunikację, umożliwiając skoncentrowanie się na specyfice projektu. Ruby ma ROR, Python ma Django i inne, Java jako ... itd.
C ++ do niedawna nie miał podobnego frameworka:
Teraz „śmieszna ilość C ++”, którą Google zbudował, jest konieczna, ponieważ musisz mieć bardzo wydajne moduły, aby rozwiązać rodzaj problemów, które rozwiązuje Google. Powodzenia w robieniu tego samego bez modułu napisanego w języku skoncentrowanym na wydajności. Polecam przeczytać wiki CPPCMS na ten temat, aby lepiej zrozumieć. Historyczne fakty, Amazon, Google, Facebook (patrz Hip Hop i ostatnie wywiady z Alexandrescu) i niektóre inne naprawdę duże serwisy internetowe mają rdzenie w C ++, z oczywistych powodów obliczeniowych, które są ważniejsze niż czas stracony na produktywności programisty.
CPPCMS i cpp-netlib są oprogramowaniem typu open source, możesz je przestudiować, jeśli chcesz wiedzieć, jak sprawić, by aplikacja działała jako usługa internetowa przy użyciu C ++. To powiedziawszy, każda aplikacja, która może nasłuchiwać portów i wysyłać dane do portu, może potencjalnie to zrobić, chodzi o protokoły (TCP / IP, HTTP itp.) , A nie kod.
źródło
Jak każdy inny język ....
Otwórz gniazdo TCP, wysyłaj i odbieraj wiadomości HTTP. Analizuj je i rób rzeczy na podstawie zawartości.
Spójrz na Qt na przykład na platformie c ++, która obsługuje niektóre podstawowe funkcje HTTP.
Istnieją również dedykowane ramy sieciowe dla C ++. Niewiele i szeroko stosowane, AFAIK. Prawdopodobnie dlatego, że jeśli tworzysz sieć przez C ++, i tak robisz coś bardzo wyspecjalizowanego i chcesz mieć pełną kontrolę nad wszystkim.
źródło
Z perspektywy klienta, jeśli masz program C / C ++ i chcesz go używać do komunikowania się z Internetem, możesz użyć libcurl. To prawie standardowa (i kompleksowa) biblioteka do łączenia się z adresami URL w celu wysyłania i odbierania danych. Istnieje kilka innych bibliotek - Microsoft ma kilka, jest kilka bibliotek typu open source.
Teraz dotyczy to zwykłych starych adresów URL za pośrednictwem protokołu http (lub SMTP, FTP, Gopher lub… libcurl jest bardzo obszerny!) Jeśli próbujesz korzystać z usług internetowych przez SOAP, możesz użyć jednej z wielu innych bibliotek, takich jak gsoap.
Po stronie serwera potrzebujesz serwera WWW lub frameworka, który ujawnia Twój kod C ++. Znów jest na to wiele sposobów - najwcześniejszymi programami WWW były wszystkie C / C ++, napisane jako programy CGI, w których serwer wywoływał twoją aplikację za pomocą formy IPC. Od tego czasu mamy Wt, Qt, cppCMS, ffead i wszystkie te od Microsoft (ISAPI, ATLServer, a teraz Casablanca).
Myślę, że powodem, dla którego nikt tak naprawdę nie używa C ++ do programowania w Internecie, jest to, że inne języki są dostarczane z tymi bibliotekami. C ++ (jak zawsze) musisz znaleźć bibliotekę do użycia, podczas gdy PHP jest po prostu gotowe do pracy w Internecie.
źródło
Architektura klient-serwer pozwala na to.
Do opracowania serwera można użyć C ++.
Po stronie klienta do komunikacji z serwerem można wykorzystać technologie sieciowe.
źródło