strona www - reakcja na polecenia

strona www - reakcja na polecenia
nowewww
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:27
0

Jak zrobić/założyć stronę www, która odpowiada na moje komendy?

na przykład piszę w przeglądarce: www.slownik.pl piasek

i to ma mi odpowiedzieć podając znaczenie słowa 'piasek', które sobie wyszuka z listy słówek na pliku.

edytowany 1x, ostatnio: Ktos
M0
  • Rejestracja:ponad 11 lat
  • Ostatnio:około 5 godzin
  • Postów:363
2

w C/C++ raczej tego nie zrobisz. Jak pytasz o takie coś to naucz się podstaw HTML, javascript, css do obsługi użytkownika oraz php/jave/javascript(node.js)/C# do serwera oraz jakąś bazę danych.

A jak to działa:
Wpisujesz na stronie www w text, jest on wysyłany na serwer. Na serwerze jest on szukany bazie danych. Wynik zostaje wysłany do klienta(przeglądarki) jako odpowiedz. Po stronie klienta jest to odpowiednio interpretowane i wyświetlanie.

stryku
w C/C++ raczej tego nie zrobisz Kuuuurde. Teraz trzeba powiedzieć panom od Apache, żeby przestali. Pewnie nie zdają sobie nawet sprawy.
M0
@stryku: ale ja nie napisałem, że tego nie da się zrobić. Tylko, że autor tego raczej nie zrobi
nowewww
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:27
0

Ja muszę w c++ to zrobić.

a nawet znalazłem coś:
https://en.wikipedia.org/wiki/Common_Gateway_Interface

"The overhead involved in process creation can be reduced by techniques such as FastCGI that "prefork" interpreter processes, or by running the application code entirely within the web server, using extension modules such as mod_perl or mod_php. Another way to reduce the overhead is to use precompiled CGI programs, e.g. by writing them in languages such as C or C++, rather than interpreted or compiled-on-the-fly languages such as Perl or PHP,"

mówią że c lepiej do tego się nadaje od skryptów.

UglyMan
  • Rejestracja:około 6 lat
  • Ostatnio:około 3 lata
  • Postów:2206
3

Poszukaj jakigos webframeworka w c++ i zrob stronę ktora przyjmie parametr

edytowany 2x, ostatnio: UglyMan
stryku
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad rok
  • Postów:607
7

Mam do dyspozycji tylko dwa, dość szczątkowe, posty, więc mogę się mylić.

  1. Wygląda mi to na problem xy. Podałeś wymyślone przez Ciebie rozwiązanie do problemu, którego nie znamy. Będzie nam łatwiej Ci pomóc jeżeli powiesz jaki masz problem. Napisz proszę co chcesz osiągnąć. Jakie masz wejście (o tym trochę wiemy bo chcesz w przeglądarce wpisać www.slownik.pl piasek) i co ma się zadziać.

  2. Jestem na 99.99% pewien, że wcale nie musisz tego robić w C++. Wydaje Ci się, że musisz bo gdzieś przeczytałeś, że wszystko inne jest wolne i serwer nie uciągnie Ci ruchu jeżeli nie użyjesz kompilowalnego języka plus nie będziesz nastawiony na optymalizację. Powiem tak, przykład, który podałeś uciągnąłby raspberry pi z odpalonym serwerem http waz z interpreterem PHP napisanym w Pythonie.
    Oczywiście mogę się mylić, i może rzeczywiście szacujesz, że Twoja strona będzie musiała obsługiwać miliony/miliardy requestów na sekundę, wtedy malinka by nie podołała :/

Teraz algorytm:

Kopiuj
Jeżeli dwa poprzednie punkty są prawdziwe:
    zainteresuj się czymś przyjemniejszym niż C++. Np. php, nodejs, python::flask/django itp itd
W innym wypadku:
    czytaj dalej

Jeżeli dotarłeś tu, to jest tylko jedno wyjaśnienie. W szkole/na uczelni dostałeś zadanie napisania serwera z wykorzystaniem C++.
Rozwiązaniem jest zmiana uczelni.

Jeżeli dalej chcesz robić to w C++, to wykorzystaj gotowe narzędzie, np. https://github.com/yhirose/cpp-httplib (nie znam tego jak coś).
Jeżeli musisz to napisać w C++ OD ZERA, to najpierw poczytaj co to jest protokół HTTP oraz jak się używa socketów w C++. Jak ogarniesz te dwie rzeczy, to daj znać.

edytowany 1x, ostatnio: stryku
06
waz z interpreterem PHP napisanym w Pythonie. - w sumie w Pythonie ma prosty serwer http.
UglyMan
  • Rejestracja:około 6 lat
  • Ostatnio:około 3 lata
  • Postów:2206
0
stryku napisał(a):

Jeżeli dotarłeś tu, to jest tylko jedno wyjaśnienie. W szkole/na uczelni dostałeś zadanie napisania serwera z wykorzystaniem C++.
Rozwiązaniem jest zmiana uczelni.

Ty tak poważnie?

stryku
Jeżeli pytasz o pierwszą linię, to tak. Jeżeli o drugą, to prawie.
UglyMan
Nie wiem ile masz lat ale jeszcze mało widziałeś
stryku
27. Czemu tak uważasz? Zresztą wiem, nie będę tego ciągnął tylko wyjaśnię mój tok myślenia. Tak pisałem na serio. Czemu? Bo jest dokładnie ZEROWA szansa, że @nowewww pracuje w poważnym projekcie, w którym piszą serwer http od zera w cepie, a do tego dostał tak odpowiedzialne zadanie, żeby zrobić research jak to ugryźć. Uważam tak dlatego, że: 1. Jego konto ma dwa posty. 2. Napsiał post o 02:09 (to jest słaby powód bo możliwe, że jest w innej strefie czasowej). 3. Pyta o dość poważny temat na polskim forum.
stryku
4. Jako przykład podaje www.slownik.pl piasek, który nawet nie jest normalnym url. 5. Jedyne co do tej pory znalazł, to art na wikipedii. 6. Jako argumentację C++ podaje randomowy cytat z internetu. 7. Jest w temacie zielony jak majowa trawa. Kurde no bez przesady, jakby serio był w projekcie, który potrzebuje takiej wydajności, że biorą pod uwagę pisanie serwera http w cepie, to ten temat by nigdy nie powstał.
UglyMan
A może pracuje w zupełnie innej działce. Np robi jakis wyliczeń fizycznych i potrzebuje je jakoś udostępnić na świat. Jestem sobie wstanie wymyślić kilka takich przypadków i nie ma pojęcia jak to zrobić. Za mało powiedział o sobie i projekcie zeby dawać tak dalece idące rady ktore moga byc nawet szkodliwe. Przynajmniej moim zadaniem
AK
  • Rejestracja:ponad 6 lat
  • Ostatnio:9 dni
  • Postów:3561
2

FastCGI to "emocjonująca nowość", tyle że roku ok 1995 (a propos zmiany uczelni)

W ogóle robienie programu w C/C++ by go włączyć przez CGI (albo "mniej złe" FastCGI) zabijając szybkość o rzędy wielkości, to jakieś jaja.
W owych czasach się (być może) myślało w ten sposób, bo C/C++ był jedynym rozpowszechnionym językiem kompilowanym, dającym tajność kodu źródłowego, jakie takie type-safe programowanie itd.
CGI pozwalało go bezpiecznie dla serwera go odpalić (tj w innej przestrzeni adresowej - dlatego wzmianki @stryku o pisaniu serwera we C/C++ nie podpadają pod ten wątek).

Nie wiem, czy wspólcześnie typowo skonfigurowany Apache / Ngnix w ogóle odpala interfejs CGI.

nowewww napisał(a):

Jak zrobić/założyć stronę www, która odpowiada na moje komendy?

na przykład piszę w przeglądarce: www.slownik.pl piasek

i to ma mi odpowiedzieć podając znaczenie słowa 'piasek', które sobie wyszuka z listy słówek na pliku.

Nie weź tego zbyt osobiście, ale sam sposób zadania pytania sugeruje, ze nie masz podstaw, fundamentów w dziedzinie.
Robiąc (hipotetycznie) w C masz "na dzień dobry" 300-100o linii kodu "rozbiegowego", plus potem na każdą linię, która by przypadała np w PHP, to w C masz 3-5..


Bo C to najlepszy język, każdy uczeń ci to powie
edytowany 4x, ostatnio: AnyKtokolwiek
nowewww
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:27
0

Nie wiem jak to się fachowo nazywy co mam zrobić.

Opiszę działanie:

  • uruchamiam program na komputerze, albo na smartfonie, albo nawet wchodzę z przeglądarki, wpisując adres www + komendy.
  • i mam otrzymać odpowiedź od serwera

może to być cokolwiek, nawet gra w szachy: wysyłam swój ruch, a serwer oblicza swój i mi go przesyła.

Althorion
Moderator C/C++
  • Rejestracja:prawie 10 lat
  • Ostatnio:około godziny
  • Postów:1603
2

Szukasz czegoś, co Ci pozwoli zaprogramować dynamiczną stronę WWW — tzn. taką, która nie jest z góry określonym zbiorem przygotowanych wcześniej dokumentów, ale jest generowana „w locie”. Właściwie każda strona taka jest — w szczególności właśnie i to forum.

Jest całe mnóstwo języków lub frameworków, które powstały w tym celu — PHP, Ruby on Rails, Python z Django…

To co Ty znalazłeś… no będzie działać. Ale normalnie się klepie takie rzeczy w bardziej wyspecjalizowanych językach, takich jak te wyżej, bo z tym mniej roboty.

nowewww
Nie znam się na anatomii sieci, mam zadanie zrobić komunikację w c++ z serwerem w sieci: ja mówię do niego a on odpowiada.
nowewww
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:27
0

zapomniałem dodać ze serwer jest pod moją kontrola,
mam pełne uprawnienie do czytania, usuwania, modyfikacji danych.

np. wysyłam komende: śpij do wtorku, i on ma to wykonać - nie będzie odpowiadał do wtorku!

UglyMan
To ty się scoketami zainteresuj a nie serwerem www
Althorion
Moderator C/C++
  • Rejestracja:prawie 10 lat
  • Ostatnio:około godziny
  • Postów:1603
2

No… to zrób. Używany przez Ciebie serwer na pewno będzie miał jakieś mechanizmy wyjścia na system, które będziesz mógł skonfigurować. A jak się bardzo uprzesz, to i swój serwer od podstaw napisać też możesz — już Ci Stryku podpowiedział, gdzie zacząć.

Bardzo niewdzięczna robota, takie odkrywanie koła na nowo… Ale jak musisz, to powodzenia; spróbujemy Ci pomóc z konkretnymi problemami.

nowewww
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:27
0

Moim zadaniem jest utworzenie od zera:

  1. ustawienie samej domeny, czy jak to sie nazywa: nowa strona np. www.reaktor.pl
  2. kod w c++ do komunikacji i po obu stronach: na serwerze jaki po stronie klientów
  3. ten sam kod w c++ ma wykrywać z kim ma do czynienia: z przeglądarką czy z programem (klienckim chyba) w c++
  4. komendy są zdefiniowane w programie c++ - tym na serwerze

nie wiem co tam jeszcze potrzeba.

AK
Powiedz: masz DUŻE doświadczenie w C++? Czy tak tylko sobie piszesz, co manago powiedział? Ja odczuwam, że sam nie rozumiesz gdy piszesz te punkty
nowewww
Raczej tak, znam podstawy c++, a samo c jeszcze lepiej, ale nie znam sie na sieciach dlatego pytam.
BG
  • Rejestracja:prawie 6 lat
  • Ostatnio:około 4 godziny
  • Postów:289
2

Robienie tego w C++ nie ma sensu, ale skoro się upierasz...

Zainstaluj sobie dodatkową bibliotekę:
https://pocoproject.org/download.html

Jak już to zrobisz, przeczytaj
https://pocoproject.org/slides/200-Network.pdf
To co Cię interesuje jest od strony 23

Tu masz przykładowy kod (stary i nie wiem czy działa)
https://www.codeproject.com/articles/252827/learning-poco-a-simple-http-server

Jeśli nie słyszałeś do tej pory o wątkach, to sobie od razu doczytaj ;)

AK
  • Rejestracja:ponad 6 lat
  • Ostatnio:9 dni
  • Postów:3561
3

Raczej tak, znam podstawy c++, a samo c jeszcze lepiej, ale nie znam sie na sieciach dlatego pytam. - nowewww wczoraj, 22:10

Szkoda, nie pytałem o PODSTAWY ale o DUŻE doświadczenie i kwalifikacje.
Z doświadczeniem - nawet nie mówiąc o gramie kodu - byś po pierwsze miał (o wiele) lepszy ogląd projektu, widział co MUSISZ, co MOŻESZ, jak duży-problem pociąć na pod-problemy (w których miejscach ciąć), wybrać właściwe architektury (i nie ukrywajmy języki). Przy braku, nawet nie bardzo jest jak ubrać w ścisłe słowa, że nawet nie świta realizacja (bo jak realizować chmurkę z mgły).
Czy choćby zobaczenie "co jeszcze potrzeba".

Powyższe pięć punktów to się nadaje na marketingowa ulotkę a nie plan/uwarunkowania projektu. A o kodowaniu to w ogóle nic nie mówię.
A znajomość języka jaka się przebija, to "jeszcze nie wiem, czego nie wiem", sorry Winnetou

Ukrywasz, co to za sytuacja, ale myślę przerosła Twoje obecne kwalifikacje nie o mieciąc-dwa, ale o rzad wielkości/1-3 lat profesjonalnego (tzn pełnoetatowego a nie z doskoku 2x do roku) "skila". Znalazłeś się w niewłaściwym punkcie czasoprzestrzeni. Wyplątaj się z tego.

nowewww napisał(a):

mówią że c lepiej do tego się nadaje od skryptów.

Kto mówi?
"do tego", czyli do czego?


Bo C to najlepszy język, każdy uczeń ci to powie
edytowany 2x, ostatnio: AnyKtokolwiek
nowewww
jasne, do szachów trzeba mieć przynajmniej 600 lat praktyki.
nowewww
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:27
0
Bartłomiej Golenko napisał(a):

Robienie tego w C++ nie ma sensu, ale skoro się upierasz...

Zainstaluj sobie dodatkową bibliotekę:
https://pocoproject.org/download.html

Jak już to zrobisz, przeczytaj
https://pocoproject.org/slides/200-Network.pdf
To co Cię interesuje jest od strony 23

Tu masz przykładowy kod (stary i nie wiem czy działa)
https://www.codeproject.com/articles/252827/learning-poco-a-simple-http-server

Jeśli nie słyszałeś do tej pory o wątkach, to sobie od razu doczytaj ;)

Sprawdzę to, zrobię, więc chwilowo znikam.
Za kilka din dam znać, czy to działa.

Aha. Gdzie najtaniej wynająć, kupić serwer - domenę, albo wynająć na próbę?

BG
Zrób najpierw na localhost;)
nowewww
ale robię stronę w sieci publicznej, więc pytam: gdzie to kupić?
DP
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:159
0

Zacznij może od tego : https://www.codeproject.com/Articles/5280036/Making-HTTP-REST-Request-in-Cplusplus-With-WinHTTP
To są podstawy, musisz najpierw ogarnąć obsługę protokołu http w C++ i podstawowych operacji na nim.

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)