Le socket connecte la programmation en C est définie comme les deux nœuds d'un réseau qui peuvent se connecter et interagir les uns avec les autres. L'autre socket (nœud) atteint la première prise pour établir une connexion tandis que la première prise écoute sur un certain port dans une IP. Une connexion à douille sert de canal de communication entre deux parties pour envoyer des messages. Nous allons rédiger ce guide pour améliorer considérablement votre compréhension de la connexion au socket à l'aide du paradigme de programmation C. Nous enverrons des messages entre le serveur et le client en utilisant le concept de programmation C dans ce guide.
Exemple:
Les exemples présentés dans ce guide sont réalisés sur Ubuntu 20.04. Ainsi, pour faire ces exemples avec Ubuntu 20.04, le compilateur GCC doit être installé. Une fois le GCC installé, certains codes C sont écrits pour démontrer l'utilisation de la «Socket Connect». Dans cet exemple, nous allons créer deux fichiers de code différents, l'un est le code côté client et l'autre est le code côté serveur. Nous connecterons les deux fichiers et envoyer des messages entre eux.
Code côté serveur
Nous utilisons l'éditeur de texte qui est livré avec Ubuntu 20.04. Tout d'abord, nous ajoutons les différents fichiers d'en-tête comme indiqué dans la capture d'écran. Ces fichiers d'en-tête sont essentiels pour ce code de connexion à socket. Après ces fichiers d'en-tête, nous définissons le port «8080». Après cela, nous utilisons la fonction «main ()» et avons les différentes variables locales à l'intérieur de cette fonction «main ()». Nous cerons un «tampon []» de taille «1024» en dessous de ces variables. Le tampon est utilisé ici pour envoyer et recevoir les données.
Ensuite, nous créons la prise à l'intérieur de l'instruction «IF». Dans cette prise, nous donnons l'adresse IP comme «af_inet». Le type de connexion est «sock_stream» qui est passé ici comme deuxième paramètre et passer le «0» comme troisième paramètre. Si la condition donnée est satisfaite, la déclaration ci-dessous cette déclaration «IF» est exécutée lorsque nous mettons la déclaration «Perror» qui imprime l'erreur sur le terminal. Ensuite, nous attachons cette prise au port «8080».
Nous utilisons le «setsocketopt». Cela facilite le changement des paramètres de la prise auquel le descripteur de fichier sockfd fait référence. Bien que totalement facultatif, cela favorise l'adresse et la réutilisation du port. Des erreurs comme «l'adresse déjà utilisée» sont évitées. Après cela, nous spécifions l'adresse de la prise. Il est défini dans le fichier d'en-tête. Pour «l'adresse.sin_port ", nous utilisons les" htons "qui sont utilisés pour convertir le numéro de port en un ordre d'octet hôte.
Ensuite, nous avons la fonction «bind ()» à l'intérieur de l'instruction «IF». Cette fonction «bind ()» est utilisée pour lier une prise à une adresse. Il contient trois paramètres. Après cela, nous créons une variable «valread» et mettons la future «read ()». Au lieu du descripteur de fichier initial fourni par Socket, l'appel de lecture utilise le nouveau descripteur de fichier fourni par la fonction «Accept ()». Nous avons la déclaration «printf» qui est utilisée pour afficher les données. Ensuite, nous utilisons la fonction «Send ()». Cette fonction est utilisée pour envoyer les données sur les sockets.
Ensuite, nous avons à nouveau l'instruction «printf» et la fonction «close ()». Ceci est utilisé pour arrêter la prise et libérer toutes les ressources qui sont allouées à la prise. La fonction «fermer ()» est également là pour arrêter la connexion de la prise. En fin de compte, nous avons une déclaration «retour 0».
Code côté client
Ce code est similaire au code du serveur précédent. Nous insérons les différents fichiers d'en-tête qui sont nécessaires pour ce code. Ensuite, nous déclarons la fonction «principale». Dans cette fonction «main ()», nous avons diverses variables locales. Nous établissons un «tampon []» de taille «1024» après ces variables. La transmission des données et la réception dans ce cas utilisent le tampon. Nous créons la prise dans l'instruction «IF». L'adresse IP de cette prise est «AF INET». Le type de connexion pour cette prise est le «flux de chaussettes» qui est fourni comme deuxième paramètre et «0» comme troisième paramètre.
Après cela, nous spécifions les adresses après la création de la prise. Ensuite, nous utilisons cette adresse à l'intérieur de l'instruction «IF» et avons l'instruction «printf» ici. Le premier argument que nous avons est le «descripteur de fichiers de socket», le deuxième argument est l'adresse de l'hôte, et le troisième argument est la taille de l'adresse. La fonction «Send ()» est ensuite utilisée. Les données envoyées via les sockets sont envoyées en utilisant cette fonction. La commande «printf» et la fonction «close ()» sont alors présents une fois de plus. Ceci est fait pour fermer la prise et libérer toutes les ressources qui lui sont affectées.
Sortir:
Comme nous devons exécuter deux codes indépendants, nous devons lancer deux terminaux distincts pour atteindre cet objectif. Le code côté client s'exécute sur un terminal tandis que le code côté serveur s'exécute sur l'autre terminal. Dans le premier terminal, nous entrons la commande suivante pour compiler notre code côté serveur:
En exécutant la commande suivante dans le deuxième terminal, nous compilons le code côté client de la même manière:
Nous exécutons les deux codes un par un moment où ils sont compilés. Cependant, comme le code côté serveur est destiné à surveiller les demandes de connexion, nous devons d'abord l'exécuter. La commande suivante peut être utilisée pour exécuter le code côté serveur:
Après cela, la commande suivante peut être utilisée pour exécuter le code côté client:
Après avoir utilisé les deux commandes sur les deux bornes simultanément, nous obtenons cette sortie qui est indiquée dans ce qui suit:
Conclusion
Nous avons présenté ce guide pour vous aider à comprendre la «connexion à socket» dans la programmation C. Nous avons expliqué cela en détail et avons fourni des exemples comme sortie. Vous pourrez envoyer et recevoir efficacement les données entre un client et un serveur à l'aide des sockets après avoir suivi l'exemple fourni dans ce guide. Cet exemple ne sert qu'une simple illustration sur la façon de connecter les sockets avec la programmation C et comment les données sont envoyées.