Avec le développement d'Internet, la programmation réseau est devenue de plus en plus une partie importante de l'informatique. En tant que langage de programmation puissant, C++ offre également une grande prise en charge de la programmation réseau. Cet article explique comment utiliser le C++ pour la programmation réseau.
Présentation de la programmation réseau
La programmation réseau est le processus d'écriture de programmes de communication utilisant des réseaux informatiques. La programmation réseau nécessite l'utilisation de protocoles réseau (tels que TCP/IP) pour la transmission des données. En programmation réseau, il existe deux rôles principaux : client et serveur. Le client fait référence au programme qui initie la demande, tandis que le serveur est le programme qui répond à la demande et fournit des données.
Programmation réseau C++
C++ fournit des bibliothèques et des outils pour prendre en charge la programmation réseau. Voici quelques bibliothèques de programmation réseau C++ couramment utilisées :
Dans cet article, nous présenterons principalement comment utiliser la bibliothèque socket dans la bibliothèque standard C++ pour la programmation réseau.
Utilisez la bibliothèque de sockets C++ pour la programmation réseau
En C++, la bibliothèque de sockets est l'une des bibliothèques importantes utilisées pour la programmation réseau. La bibliothèque de sockets offre un moyen simple et portable de communiquer entre ordinateurs distants, permettant aux programmeurs de créer rapidement des applications réseau.
Avant d'utiliser la bibliothèque de sockets, vous devez inclure les fichiers d'en-tête suivants :
#include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <unistd.h> #include <string.h> #include <iostream> #include <stdlib.h>
Créer un socket
Pour créer un socket C++, vous pouvez utiliser la fonction socket(), le code est le suivant :
int sockfd = socket(AF_INET, SOCK_STREAM, 0);
Ici, AF_INET indique l'utilisation du protocole IPv4, SOCK_STREAM signifie Utiliser le protocole TCP pour la transmission, 0 signifie utiliser le protocole par défaut.
Connectez-vous au serveur
Si vous souhaitez vous connecter au serveur, vous pouvez utiliser la commande connect pour y parvenir. Lorsqu'il est utilisé sur le client, après avoir utilisé la fonction socket() pour créer le socket, vous pouvez utiliser la fonction de connexion connect() pour lier le socket au serveur. Le code est le suivant :
struct sockaddr_in serv_addr; memset(&serv_addr, '0', sizeof(serv_addr)); serv_addr.sin_family = AF_INET; serv_addr.sin_port = htons(port); if (inet_pton(AF_INET, ip, &serv_addr.sin_addr) <= 0) { std::cerr << "Error: Address not supported" << std::endl; return -1; } if (connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0) { std::cerr << "Error: Connection Failed" << std::endl; return -1; }
Ici, il faut préciser l'adresse IP et le numéro de port du serveur. La fonction inet_pton() convertit une adresse IP décimale pointée standard en ordre des octets du réseau. Si la connexion échoue, -1 sera renvoyé.
Envoi et réception de données
Pour envoyer et recevoir des données, vous pouvez utiliser les fonctions send() et recv(). Voici le code pour envoyer des données :
int bytes_sent = send(sockfd, buffer, strlen(buffer), 0);
Ici, sockfd est le socket, buffer est les données à envoyer, strlen(buffer) est la longueur des données et 0 signifie qu'aucun indicateur n'est défini.
Voici le code pour recevoir des données :
char incoming_buffer[1024]; memset(incoming_buffer, '0', sizeof(incoming_buffer)); bytes_received = recv(sockfd, incoming_buffer, 1024, 0); std::cout << "Received: " << incoming_buffer << std::endl;
Ici, le incoming_buffer est un tableau de caractères de taille 1024, la fonction recv() lira les données du socket connecté et les stockera dans le incoming_buffer.
Fermez la connexion
Après avoir terminé l'envoi et la réception des données, vous devez fermer la connexion via la fonction close(). Le code est le suivant :
close(sockfd);
Cela fermera le socket de connexion et libérera les ressources associées.
Résumé
Dans cet article, nous avons présenté comment utiliser la bibliothèque de sockets C++ pour la programmation réseau. La programmation réseau de base implique la création de sockets, la connexion aux serveurs, l'envoi et la réception de données et la fermeture des connexions. Dans le développement réel d'applications réseau, vous devrez peut-être gérer davantage de situations, telles que la gestion de plusieurs connexions, l'utilisation de sockets non bloquants, etc. Cependant, nous pensons que ce qui est mentionné ici constitue déjà un bon point de départ pour les débutants.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!