Maison > développement back-end > Tutoriel Python > Le socket python complète une communication simple

Le socket python complète une communication simple

coldplay.xixi
Libérer: 2020-12-25 17:29:19
avant
6263 Les gens l'ont consulté

Tutoriel PythonLa colonne présente les méthodes de communication socket

Le socket python complète une communication simple

Recommandé (gratuit) : Tutoriel Python

Introduction au socket

socket est également connu comme "Socket", le socket enverra des données via le protocole udp/tcp pour réaliser une communication simple entre deux machines.

Remarque : Si vous souhaitez utiliser socket pour établir une communication simple entre deux machines, veuillez d'abord vous assurer que les deux machines sont connectées au même réseau local. Bien entendu, le socket peut également réaliser la communication entre une machine. Il vous suffit de définir l'adresse IP de l'objet de connexion sur 127.0.0.1, qui est l'adresse IP locale.

Exemples

Seules quelques fonctions pratiques sont présentées ici.


函数 描述
socket.socket() 创建一个套接字
socket.bind() 绑定到一个ip和端口上,传入参数为元组
socket.recv() 接受数据
socket.send() 发送数据
socket.close() 关闭套接字
socket.connect() 连接到一个ip和端口上
socket.listen() 开启tcp端口上监听模式
socket.accept() 阻塞,等待连接

Fonction de communication entre machines

serveur de socket

Laissez-nous créez un socket_server.py et entrez le code suivant :

import socket
server = socket.socket()server.bind(('0.0.0.0',80))server.listen()sock,addr = server.accept()data = ""while True:
    tmp_data = sock.recv(1024)
    if tmp_data:
        data += tmp_data.decode("utf8")
    else:
        breakprint('%s发送的内容:%s'%(addr[0],data))sock.close()
Copier après la connexion

Ici, nous avons créé un socket et l'avons lié à l'adresse 0.0.0.0:80. Cette adresse peut également être modifiée en notre Le nom de cette machine. Ensuite, nous passons en mode écoute. Une fois l'utilisateur connecté, nous commençons à recevoir des données (remarque : le décodage utf8 est requis avant d'accepter les données).

client socket

Après avoir créé socket_server.py, nous pouvons créer notre client. Créons un fichier appelé socket_client.py, puis entrons le code suivant :

import socket
client = socket.socket()client.connect(('127.0.0.1',80))client.send("Hello,Server.".encode("utf8"))client.close()
Copier après la connexion

Ici nous ne parlerons que des deux fonctions suivantes : connecter et envoyer. Nous avons transmis un tuple à la fonction connect, mais bien sûr, une liste fonctionnera également. Le premier élément doit être l’adresse IP de l’objet connecté et le second le port. Une fois la connexion terminée, nous utilisons la fonction d'envoi pour envoyer le message. Avant l'envoi, nous devons encoder le contenu en type utf8.

Envoyer des données à un site Web

Nous créons un fichier appelé socket_website.py et entrons le code suivant :

import socket
s.connect(('www.baidu.com',443))s.send('HELLO'.encode('utf8'))s.close()
Copier après la connexion

Ici, nous avons envoyé des données à baidu.com Puisque Baidu utilise le protocole https, nous utilisons le port 443. Si le code ne signale pas d'erreur, cela signifie que l'envoi a réussi. À ce stade, la base de données de Baidu contiendra des données de contenu textuelle supplémentaires appelées HELLO.

astuce : Si vous utilisez continuellement socket pour envoyer des données à un site Web ou à une machine, trop de données entraîneront une saturation de la base de données/de la mémoire de la machine cible, entraînant un crash. Cela implémente une simple attaque ddos ​​légendaire

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!

Étiquettes associées:
source:learnku.com
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal