Python-Tutorial Kolumne stellt die Socket-Kommunikationsmethode vor
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
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).
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!