Serveur Web C++ simple

Serveur Web C Simple



Dans cet article, nous découvrirons les serveurs Web en C++. L'objectif principal du serveur Web est de gérer les requêtes HTTP arrivant, de traiter toutes les requêtes à venir et de répondre en retour avec le contenu Web HTML. Nous devons maintenir le serveur Web en C++ en ajoutant simplement les bibliothèques réseau dans l'environnement C++, comme les « sockets », pour gérer les communications et les problèmes réseau. Un serveur Web est l’épine dorsale d’Internet et constitue un moyen de communication entre les utilisateurs et les serveurs principaux. Évaluons le processus de création d'un serveur Web simple à travers des exemples d'implémentations appropriés.

Configuration de l'environnement

Nous devons d’abord configurer toutes les options requises dans notre environnement. Nous devons utiliser les sockets pour écouter les requêtes HTTP entrantes. Après cela, nous lions le socket au port spécifique de la machine hôte en tant que système. Après cela, lorsque les clients appellent pour la requête, le serveur écoute ces requêtes connectées entrantes. Le serveur répond aux demandes de l'utilisateur via des requêtes HTTP pour récupérer la demande de l'utilisateur sur le serveur. Après cela, le serveur traite la demande et renvoie les réponses HTTP à l'utilisateur avec une rédaction appropriée.







Gestion des sockets du serveur Web

Dans cette session, nous apprendrons que les sockets créent une communication entre les différents processus qui s'exécutent dans notre système. Les sockets sont essentiellement utilisés pour créer la communication ou la connexion entre le navigateur du client et notre serveur. La connexion du socket est construite en C++ de la manière mentionnée ci-dessous :



Ici, nous définirons les bibliothèques pour les sockets comme « #include ». Dans la fonction principale, nous créons le socket en initialisant le « server_fd ». Après cela, nous vérifions la valeur du « server_fd » qui contient la validation de connexion stock. Si le serveur est en panne et ne fonctionne pas correctement, il renvoie ou affiche le message « Échec de la création du socket ». Sinon, le message contenant l'adresse IP du serveur Web affichera les données HTML sur le serveur Web.



#include
#include
#include
int main ( ) {
int serveur_fd = socket ( AF_INET, SOCK_STREAM, 0 ) ;
si ( serveur_fd == - 1 ) {
std :: cerr << 'La création du socket a échoué' ;
retour -1 ;
}
// autre
// {
// std :: cout << 'sortie' ;
// }
// lier
std :: cout << 'http://:127.0.0.1:8080' ;
// Un autre code va ici
retour 0 ;
}


La sortie de ce code est jointe ci-dessous :






Cela montre que le socket est créé avec succès en C++ pour se connecter au serveur Web.

Gestion du serveur Web en C++

Le serveur Web du système est configuré pour gérer les différents concepts C++ comme le tri par fusion, le tri linéaire, etc. N'oubliez pas d'initialiser les bibliothèques réseau importantes. Le serveur Web s'exécute sur la machine locale (127.0.0.1) et écoute sur le port 8080.



Incluez les bibliothèques nécessaires dans le langage de programmation C++ comme suit :

# inclure < booster / asio.hpp >


N'oubliez pas que la création d'un serveur Web en C++ n'est pas un processus facile et long. Nous pouvons gérer les connexions entrantes en utilisant « async_accept ».

Réponses du serveur dans le code C++ sur le serveur Web

La réponse du serveur doit être HTTP, qui fonctionne sur le navigateur et affiche la sortie dans la vue HTML de la page Web. Toutes les bibliothèques gèrent les serveurs et traitent toutes les requêtes valides.

Liaison et écoute du serveur Web

Ensuite, nous devons connaître la liaison et l'écoute du serveur Web pour exécuter facilement le code sur la page Web. Après cela, nous devons lier le socket à l'adresse donnée de notre système, essentiellement l'adresse IP et le port sur lesquels ces sockets sont actifs. Sur le port, nous commençons à écouter les connexions entrantes.

Nous devons initialiser les quelques bibliothèques à lier et à lier.

Adresse Sockaddr_in ;


Nous pouvons lier le serveur. Si le serveur est en panne ou n'est pas connecté, le message ne s'affiche sur la page Web d'aucun navigateur.

Accepter les connexions au serveur Web

Dans cette section, nous apprendrons comment contrôler le flux des demandes des clients. Le serveur accepte toutes les demandes des clients via le protocole HTTP. Le socket du serveur indique la taille du message reçu sur le serveur Web en provenance du client. Le message contient la connexion et l'adresse du socket du serveur de manière plus claire et unique. Nous vérifions si le serveur doit répondre si le socket utilisateur est trouvé ou non. Si la connexion socket utilisateur n’est pas trouvée, nous ne pouvons pas accepter la connexion à un serveur Web.

Méthodes d'envoi et de réception des données de l'utilisateur et du serveur

Après avoir créé les liens de socket et accepté la connexion, la prochaine étape consiste à envoyer les données côté serveur et à recevoir les données du serveur en utilisant différents mots-clés et en créant les fonctions liées à l'envoi et à la réception des données en C++. Ici, nous vérifions la réponse des données. S'agit-il d'une demande visant à obtenir les données ou à POSTer les données à partir du serveur Web ? Nous vérifions l’état de réponse de la demande du client. Nous stockons temporairement toutes les requêtes des clients sur le tampon pour afficher le message ou la sortie sur le serveur Web.

Tri linéaire en C++

Effectuons ici le tri linéaire et affichons facilement le résultat du tri linéaire sur le serveur Web. L'extrait de code du tri linéaire est joint ci-dessous :

#include
en utilisant l'espace de noms std ;
void RechercheLinéaire ( int arr [ ] , longueur int, élément int ) {
pour ( int je = 0 ;je < len;i++ ) {
si ( arr [ je ] == article ) {
cout << article << ' Trouvé à l'index : ' << je;
retour ;
}
}
cout << 'Pas trouvé' ;
}
int main ( ) {
int arr [ ] = { dix , 5 , quinze , vingt-et-un , - 3 , 7 } ;
int len ​​= taille de ( arr ) / taille de ( arr [ 0 ] ) ;
article entier = vingt-et-un ;
Recherche linéaire ( arr, len, article ) ;
retour 0 ;
}


Dans cet exemple, nous recherchons l'élément « 21 » à quel index. Nous exécutons donc ce code. La sortie de ce code est jointe ci-dessous :


Cette sortie est désormais ouverte sur le serveur Web comme dans n'importe quel navigateur tel que Chrome, Edge, etc.

Terminez toutes les connexions après l'affichage de la sortie

Il s'agit de la dernière étape du traitement des données sur un serveur Web. N'oubliez pas de fermer les connexions socket après avoir effectué la sortie requise. Nous fermons ici le socket en utilisant les fonctions telles que « close(server_id) » et « close (client socket) ».

À la fin de l'exécution du serveur, le résultat attendu est affiché sur la page Web en accédant à l'adresse « http://localhost:8080 ».

Conclusion

À la fin de cet article, nous pouvons dire que la gestion simple du serveur Web en C++ est vraiment complexe et nécessite une concentration totale pour envoyer et recevoir la requête du client HTTP. Nous pouvons étendre la fonctionnalité du serveur Web pour afficher le contenu de manière dynamique sur la page Web. J'espère que cet article vous sera utile et que vous pourrez exécuter ces exemples sur votre environnement pour comprendre les étapes requises pour créer un serveur Web simple en C++.