Heim  >  Artikel  >  Backend-Entwicklung  >  Der Python-Socket vervollständigt die einfache Kommunikation

Der Python-Socket vervollständigt die einfache Kommunikation

coldplay.xixi
coldplay.xixinach vorne
2020-12-25 17:29:196217Durchsuche

Python-Tutorial Kolumne stellt die Socket-Kommunikationsmethode vor

Der Python-Socket vervollständigt die einfache Kommunikation

Empfohlen (kostenlos): Python-Tutorial

Einführung in Socket

Buchse wird auch „Buchse“ genannt Word“ sendet der Socket Daten über das UDP/TCP-Protokoll, um eine einfache Kommunikation zwischen zwei Maschinen zu erreichen.

Hinweis: Wenn Sie Socket verwenden möchten, um eine einfache Kommunikation zwischen zwei Maschinen zu erreichen, stellen Sie bitte zunächst sicher, dass die beiden Maschinen mit demselben lokalen Netzwerk verbunden sind. Natürlich kann Socket auch die Kommunikation zwischen Maschinen realisieren. Sie müssen lediglich die IP des Verbindungsobjekts auf 127.0.0.1 setzen, was die lokale IP ist.

Beispiele

Hier werden nur einige praktische Funktionen gezeigt.


.
Funktion Beschreibung
socket.socket() Erstellen Sie einen Socket.
socket.bind() An eine IP und einen Port binden. Die eingehenden Parameter sind Tupel
socket.recv() Daten akzeptieren
socket.send() Daten senden
socket.close() Schließen Sie den Socket
socket.connect() Mit einer IP und einem Port verbinden
socket.listen() Abhörmodus am TCP-Port aktivieren
socket.accept() Blockieren, auf Verbindung warten

Kommunikation Funktion zwischen Maschinen

Socket-Server

Lassen Sie uns einen socket_server.py erstellen und den folgenden Code eingeben:

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()

Hier erstellen wir einen Socket und binden ihn an die Adresse 0,0:80, diese Adresse kann auch in den Namen unseres lokalen Rechners geändert werden. Dann starten wir den Abhörmodus. Nachdem der Benutzer eine Verbindung hergestellt hat, beginnen wir mit dem Empfang von Daten (Hinweis: Vor dem Empfangen von Daten ist eine UTF8-Dekodierung erforderlich).

Socket-Client

Nachdem wir socket_server.py erstellt haben, können wir unseren Client erstellen. Erstellen wir eine Datei namens socket_client.py und geben Sie den folgenden Code ein:

import socket
client = socket.socket()client.connect(('127.0.0.1',80))client.send("Hello,Server.".encode("utf8"))client.close()

Hier sprechen wir nur über die folgenden beiden Funktionen: Verbinden und Senden. Wir haben ein Tupel an die Verbindungsfunktion übergeben, aber natürlich funktioniert auch eine Liste. Das erste Element muss die IP des verbundenen Objekts sein und das zweite ist der Port. Nachdem die Verbindung hergestellt wurde, verwenden wir die Sendefunktion, um die Nachricht zu senden. Vor dem Senden müssen wir den Inhalt in den Typ utf8 kodieren.

Daten an eine Website senden

Wir erstellen eine Datei namens socket_website.py und geben den folgenden Code ein:

import socket
s.connect(('www.baidu.com',443))s.send('HELLO'.encode('utf8'))s.close()

Hier senden wir Daten an baidu.com. Da Baidu das https-Protokoll verwendet, verwenden wir den Port 443. Wenn der Code keinen Fehler meldet, bedeutet dies, dass der Versand erfolgreich war. Zu diesem Zeitpunkt verfügt die Datenbank von Baidu über zusätzliche Textinhaltsdaten mit dem Namen HELLO.

Tipp: Wenn Sie Socket ständig zum Senden von Daten an eine Website oder einen Computer verwenden, führt eine zu große Datenmenge dazu, dass der Speicher der Zieldatenbank/des Zielcomputers voll wird, was zu einem Absturz führt. Dadurch wird ein einfacher legendärer DDoS-Angriff implementiert

Das obige ist der detaillierte Inhalt vonDer Python-Socket vervollständigt die einfache Kommunikation. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:learnku.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen