Preprost spletni strežnik C++

Preprost Spletni Streznik C



V tem članku bomo spoznali spletne strežnike v C++. Glavni namen spletnega strežnika je obravnavati prispele zahteve HTTP, obdelati vse prihajajoče zahteve in odgovoriti s spletno vsebino HTML v zameno. Vzdrževati moramo spletni strežnik v C++ tako, da samo dodamo omrežne knjižnice v okolje C++, kot so »sockets«, za obravnavo omrežnih komunikacij in težav. Spletni strežnik je hrbtenica interneta in je način komunikacije med uporabniki in glavnimi strežniki. Ovrednotimo postopek ustvarjanja preprostega spletnega strežnika z ustreznimi primeri implementacij.

Nastavitev okolja

Najprej moramo nastaviti vse zahtevane možnosti v našem okolju. Za poslušanje dohodnih zahtev HTTP moramo uporabiti vtičnice. Po tem povežemo vtičnico z določenimi vrati na gostiteljskem računalniku kot naš sistem. Potem, ko odjemalci pokličejo zahtevo, strežnik posluša te dohodne povezane zahteve. Strežnik se odziva na zahteve uporabnika prek zahtev HTTP, da prenese uporabnikovo zahtevo na strežnik. Po tem strežnik obravnava zahtevo in uporabniku vrne odgovore HTTP z ustrezno obdelavo.







Ravnanje z vtičnicami spletnega strežnika

V tej seji se bomo naučili, da vtičnice ustvarjajo komunikacijo med različnimi procesi, ki tečejo v našem sistemu. Vtičnice se v bistvu uporabljajo za ustvarjanje komunikacije ali povezave med odjemalčevim brskalnikom in našim strežnikom. Povezava vtičnice je zgrajena v C++ na način, ki je omenjen v naslednjem:



Tukaj bomo definirali knjižnice za vtičnice kot “#include ”. V glavni funkciji ustvarimo vtičnico z inicializacijo »server_fd«. Po tem preverimo vrednost »server_fd«, ki vsebuje preverjanje osnovne povezave. Če strežnik ne deluje in ne deluje dobro, vrne ali prikaže sporočilo »Ustvarjanje vtičnice ni uspelo«. V nasprotnem primeru bo sporočilo, ki ima naslov IP spletnega strežnika, prikazalo podatke HTML na spletnem strežniku.



#include
#include
#include
int main ( ) {
int strežnik_fd = vtičnica ( AF_INET, SOCK_STREAM, 0 ) ;
če ( server_fd == - 1 ) {
std::cerr << 'Ustvarjanje vtičnice ni uspelo' ;
vrnitev -1 ;
}
// drugače
// {
// std::cout << 'izhod' ;
// }
// vezati
std::cout << 'http//:127.0.0.1:8080' ;
// Nadaljnja koda je tukaj
vrnitev 0 ;
}


Izhod te kode je priložen v naslednjem:






To kaže, da je vtičnica uspešno ustvarjena v C++ za povezavo s spletnim strežnikom.

Upravljanje spletnega strežnika v C++

Spletni strežnik sistema je nastavljen tako, da obravnava različne koncepte C++, kot je razvrščanje z združevanjem, linearno razvrščanje itd. Ne pozabite inicializirati pomembnih omrežnih knjižnic. Spletni strežnik deluje na lokalnem računalniku (127.0.0.1) in posluša na vratih 8080.



Vključite potrebne knjižnice v programskem jeziku C++, kot sledi:

# vključiti < pospešek / asio.hpp >


Ne pozabite, da ustvarjanje spletnega strežnika v C++ ni enostaven in dolgotrajen postopek. Dohodne povezave lahko obravnavamo z uporabo »async_accept«.

Odzivi strežnika v kodi C++ na spletnem strežniku

Odgovor strežnika mora biti HTTP, ki deluje v brskalniku in prikazuje izhod v pogledu HTML na spletni strani. Vse knjižnice upravljajo strežnike in obravnavajo vse veljavne zahteve.

Vezava in poslušanje spletnega strežnika

Nato moramo vedeti o vezavi in ​​poslušanju spletnega strežnika, da lahko preprosto izvedemo kodo na spletni strani. Po tem moramo vtičnico povezati z danim naslovom našega sistema, v bistvu naslovom IP in vrati, na katerih so te vtičnice aktivne. Na vratih začnemo poslušati dohodne povezave.

Inicializirati moramo nekaj knjižnic za povezovanje in povezavo.

naslov Sockaddr_in;


Strežnik lahko povežemo. Če strežnik ne deluje ali ni povezan, sporočilo ni prikazano na spletni strani nobenega brskalnika.

Sprejemanje povezav s spletnim strežnikom

V tem razdelku se bomo naučili, kako lahko nadzorujemo pretok strankinih zahtev. Strežnik sprejema vse zahteve odjemalcev prek protokola HTTP. Strežniška vtičnica označuje velikost sporočila, ki ga spletni strežnik prejme od odjemalca. Sporočilo vsebuje povezavo in naslov strežniške vtičnice bolj jasno in edinstveno. Preverimo, ali se mora strežnik odzvati, če je uporabniška vtičnica najdena ali ne. Če povezave z uporabniško vtičnico ni mogoče najti, ne moremo sprejeti povezave s spletnim strežnikom.

Metode pošiljanja in prejemanja podatkov od uporabnika in strežnika

Ko ustvarite povezave vtičnic in sprejmete povezavo, je naslednja stvar pošiljanje podatkov na stran strežnika in prejemanje podatkov s strežnika z uporabo različnih ključnih besed in gradnjo funkcij, ki so povezane s pošiljanjem in prejemanjem podatkov v C++. Tukaj preverimo odziv podatkov. Je ta zahteva za pridobitev podatkov ali za OBJAVLJANJE podatkov s spletnega strežnika? Preverimo status odgovora na zahtevo stranke. Vse odjemalske zahteve začasno shranimo v medpomnilnik, da prikažemo sporočilo ali izhod na spletnem strežniku.

Linearno razvrščanje v C++

Izvedimo linearno razvrščanje tukaj in preprosto prikažimo rezultat linearnega razvrščanja na spletnem strežniku. Delček kode linearnega razvrščanja je priložen v naslednjem:

#include
uporaba imenskega prostora std;
void LinearSearch ( int prir [ ] , int len, int item ) {
za ( int jaz = 0 ;jaz < len;i++ ) {
če ( prir [ jaz ] == predmet ) {
cout << postavka << ' Najdeno na indeksu : ' << jaz;
vrnitev ;
}
}
cout << 'Ni najdeno' ;
}
int main ( ) {
int prir [ ] = { 10 , 5 , petnajst , enaindvajset , - 3 , 7 } ;
int len ​​= sizeof ( prir ) / sizeof ( prir [ 0 ] ) ;
int item = enaindvajset ;
LinearSearch ( arr, len, predmet ) ;
vrnitev 0 ;
}


V tem primeru iščemo postavko '21', pri katerem indeksu. Torej, izvajamo to kodo. Izhod te kode je priložen v naslednjem:


Ta izhod je zdaj odprt na spletnem strežniku kot v katerem koli brskalniku, kot je Chrome, Edge itd.

Prekinite vse povezave po izhodnem prikazu

To je zadnji korak pri obdelavi podatkov na spletnem strežniku. Po izvedbi zahtevanega izhoda ne pozabite zapreti povezav vtičnice. Tukaj zapremo vtičnico s funkcijami, kot sta 'close(server_id)' in 'close (client socket)'.

Ob koncu delovanja strežnika se pričakovani izhod prikaže na spletni strani z dostopom do naslova kot »http//localhost:8080«.

Zaključek

Na koncu tega članka lahko rečemo, da je preprosto upravljanje s spletnim strežnikom v C++ res zapleteno in potrebuje popolno koncentracijo za pošiljanje in prejemanje zahteve odjemalca HTTP. Funkcionalnost spletnega strežnika lahko razširimo za dinamičen prikaz vsebine na spletni strani. Upajmo, da vam je ta članek v pomoč in da lahko te primere zaženete v svojem okolju, da boste razumeli korake, ki so potrebni za ustvarjanje preprostega spletnega strežnika v C++.