Avec le développement rapide de la technologie du cloud computing et de l'Internet des objets, la programmation réseau est devenue une compétence de plus en plus importante. Python est un langage de programmation populaire et l'un des langages couramment utilisés pour la programmation réseau. Socket est l'un des modules de programmation réseau les plus importants de Python et peut implémenter diverses applications réseau. Cet article présentera les concepts de base et l'utilisation simple du module Socket en Python, et fournira l'implémentation de serveur Socket la plus simple.
Socket est une technologie de communication qui permet à différentes applications de communiquer sur le réseau. En Python, Socket est un module de programmation réseau intégré utilisé pour implémenter diverses applications réseau, telles que des serveurs Web, des serveurs FTP, des serveurs SMTP et diverses applications client. Dans la programmation Socket, les deux extrémités de la communication nécessitent un objet Socket.
Il existe quatre types de Sockets : le socket de flux (TCP), le socket de datagramme (UDP), le socket brut (RAW) et le socket de signal (SIGNAL). Parmi eux, TCP est un Socket de streaming, qui peut assurer une transmission de données fiable et continue lors de la communication sur le réseau via TCP ; UDP est un Socket de datagramme, qui peut transmettre des données lorsque le réseau n'est pas fiable ; exploiter des protocoles de niveau inférieur ; SIGNAL est une prise de signal, qui peut réaliser la communication entre les processus.
Pour utiliser le module Socket en Python, vous devez d'abord importer le module :
import socket
Créer un objet Socket :
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
Parmi eux, socket.AF_INET signifie utiliser le Protocole IPv4 et socket.SOCK_STREAM Indique l'utilisation du protocole de transport TCP. Si vous devez utiliser le protocole de transmission UDP, vous devez le déclarer comme ceci :
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
Ensuite, vous pouvez lier l'adresse IP et le port via la méthode bind() :
sock.bind(('127.0.0.1', 8080))
Parmi eux, '127.0.0.1' représente le l'adresse IP locale et 8080 représente le numéro de port.
Enfin, vous pouvez écouter la demande de connexion du client via la méthode Listen(), et recevoir la connexion du client via la méthode accept() :
sock.listen(5) while True: conn, addr = sock.accept() data = conn.recv(1024) print(data.decode()) conn.sendall('Hello, client'.encode()) conn.close()
Parmi eux, Listen(5) signifie que jusqu'à 5 demandes de connexion sont autorisées dans la file d'attente, et plus de 5 personnes refuseront. La méthode accept() renvoie un objet Socket connecté (conn) et une adresse client (addr). Lors de la réception des données envoyées par le client, vous pouvez utiliser la méthode recv() et lors de l'envoi de données, vous pouvez utiliser la méthode sendall(). Enfin, pensez à fermer la connexion.
Enfin, regardons l'implémentation de serveur Socket la plus simple, qui est utilisée pour recevoir la demande de connexion du client et renvoyer "Bonjour, client":
import socket sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.bind(('127.0.0.1', 8080)) sock.listen(5) while True: conn, addr = sock.accept() data = conn.recv(1024) print(data.decode()) conn.sendall('Hello, client'.encode()) conn.close()
Exécuter dans le terminal À partir de ce script, vous pouvez voir que le serveur a commencé à écouter les demandes de connexion sur le port 8080. À ce stade, vous pouvez utiliser l'outil telnet pour simuler un client et vous connecter au serveur :
telnet 127.0.0.1 8080
Une fois la connexion réussie, vous pouvez saisir n'importe quelle chaîne sur le client et le serveur renverra "Bonjour, client". À ce stade, l’implémentation la plus simple du serveur Socket est terminée.
Résumé
En lisant cet article, vous avez compris les concepts de base et l'utilisation simple du module Socket en Python, et comment implémenter le serveur Socket le plus simple. Socket est l'un des modules de programmation réseau les plus importants de Python, capable d'implémenter diverses applications réseau, telles que des serveurs Web, des serveurs FTP, des serveurs SMTP et diverses applications client. Si vous avez besoin de faire de la programmation réseau, Socket est l'un de vos outils indispensables.
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!