Maison >développement back-end >Tutoriel Python >Programmation serveur Python : les sockets réseau expliquées en détail

Programmation serveur Python : les sockets réseau expliquées en détail

王林
王林original
2023-06-18 19:00:091066parcourir

La programmation réseau Python peut être implémentée à l'aide de sockets. Les sockets sont un composant de base de la communication réseau et une interface de programmation réseau informatique universelle. La bibliothèque de sockets en Python fournit une interface simple mais puissante pour prendre en charge le transfert de données, ce qui offre une bonne prise en charge de la programmation du serveur Python.

Une socket constitue les deux extrémités d'un lien de communication et est utilisée pour mettre en œuvre la communication réseau. Elle fournit une interface de transmission de données entre les ordinateurs. En Python, un handle de Socket peut être une demande de connexion client ou une demande d'écoute du serveur. Les sockets peuvent être utilisés pour les protocoles TCP et UDP.

En Python, les sockets sont divisés en deux types :

  1. Socket TCP

Le socket TCP fournit une méthode de transmission orientée connexion Le client doit établir une connexion lors de la connexion au serveur. Le processus de connexion est un "trois". "-way handshake". Le protocole TCP détectera une série de problèmes tels que si la transmission est terminée et la retransmission en cas d'échec de la transmission. L'efficacité de la transmission du socket TCP est faible, mais la transmission des données est fiable.

  1. Socket UDP

Le socket UDP fournit une méthode "sans connexion", qui ne nécessite pas de "poignée de main à trois". Elle est plus efficace que le socket TCP, mais la transmission est faible.

En Python, lors de l'utilisation d'un socket, une connexion doit d'abord être établie. Une fois la connexion terminée, les données doivent être transmises. Une fois la transmission terminée, la connexion doit être fermée. Voici l'implémentation du socket côté serveur en Python :

import socket

HOST = '127.0.0.1' #本地ip
PORT = 8888 #端口号

#创建一个套接字对象
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

#将套接字与本地ip及其端口号绑定
server.bind((HOST, PORT))

#开始监听传入的连接
server.listen()

#不断接收客户端的连接,如果有新的连接加入,就创建新的连接线程进行处理
while True:
    #获取客户端请求
    conn, addr = server.accept()
    print('Connected by', addr)

    #接收客户端发来的数据并回应
    data = conn.recv(1024)
    print(data)
    conn.sendall(data)

    #关闭连接
    conn.close()

Ce qui précède est un exemple de code simple pour l'implémentation du socket côté serveur Python. Ce qui suit est une brève introduction aux fonctions et aux méthodes d'implémentation de chaque partie du code.

Tout d'abord, vous devez importer le socket de la bibliothèque de sockets Python, puis déclarer l'adresse IP locale et le numéro de port du serveur. Vous pouvez le définir vous-même plus tard, à condition qu'il n'entre pas en conflit avec d'autres services ouverts sur l'ordinateur. .

Dans le code, un serveur d'objets socket vide est d'abord établi, ce qui se fait ici à l'aide de la fonction socket.socket. Le premier paramètre AF_INET représente le protocole IPv4, et le deuxième paramètre SOCK_STREAM représente l'utilisation du protocole TCP.

Ensuite, utilisez la fonction bind pour lier le serveur socket à l'adresse IP locale et à son numéro de port correspondant. Ici, la forme tuple est utilisée et l'adresse IP locale et le numéro de port sont transmis en tant que paramètres. être placé entre guillemets simples.

Démarrez ensuite l'écoute du serveur socket et utilisez la fonction d'écoute. Dans cet exemple, le serveur recevra les informations de socket correspondant à l'adresse IP locale et au numéro de port, acceptera la demande de connexion et renverra un message de réussite de connexion.

Enfin, utilisez une boucle pour surveiller en permanence la demande du client, obtenez une demande à chaque fois, imprimez l'adresse IP du client connecté, puis recevez les données envoyées par le client, imprimez-les et envoyez une réponse. Une fois le transfert de données terminé, fermez la connexion.

L'utilisation des sockets Socket pour la programmation réseau en Python vous donnera un plus grand degré de liberté et vous pourrez implémenter facilement et de manière flexible diverses applications basées sur la communication réseau. Voici une brève introduction à l'implémentation des sockets côté serveur Python. aide.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn