Heim > Artikel > Backend-Entwicklung > Python-Serverprogrammierung: Netzwerk-Sockets ausführlich erklärt
Python-Netzwerkprogrammierung kann mithilfe von Sockets implementiert werden. Sockets sind eine grundlegende Komponente der Netzwerkkommunikation und eine universelle Programmierschnittstelle für Computernetzwerke. Die Socket-Bibliothek in Python bietet eine einfache, aber leistungsstarke Schnittstelle zur Unterstützung der Datenübertragung, die eine gute Unterstützung für die Python-Serverprogrammierung bietet.
Ein Socket ist der zwei Endpunkte einer Kommunikationsverbindung und wird zur Implementierung der Netzwerkkommunikation verwendet. Er stellt eine Datenübertragungsschnittstelle zwischen Computern bereit. In Python kann ein Socket-Handle eine Client-Verbindungsanforderung oder eine Server-Listening-Anfrage sein. Sockets können sowohl für TCP- als auch für UDP-Protokolle verwendet werden.
In Python werden Sockets in zwei Typen unterteilt:
TCP-Socket bietet eine verbindungsorientierte Übertragungsmethode. Der Client muss eine Verbindung herstellen, wenn er eine Verbindung zum Server herstellt -way Handshake"-Prozess. Das TCP-Protokoll erkennt eine Reihe von Problemen, z. B. ob die Übertragung abgeschlossen ist, eine erneute Übertragung, wenn die Übertragung fehlschlägt usw. Die Effizienz der TCP-Socket-Übertragung ist gering, aber die Datenübertragung ist zuverlässig.
UDP-Socket bietet eine „verbindungslose“ Methode, die keinen „Drei-Wege-Handshake“ erfordert. Sie ist effizienter als TCP-Socket, aber die Übertragung ist gering.
In Python muss bei Verwendung eines Sockets zunächst eine Verbindung hergestellt werden. Nach Abschluss der Verbindung müssen Daten übertragen werden. Das Folgende ist die serverseitige Socket-Implementierung in 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()
Das Obige ist ein einfacher Beispielcode für die serverseitige Socket-Implementierung in Python. Im Folgenden finden Sie eine kurze Einführung in die Funktionen und Implementierungsmethoden jedes Teils des Codes.
Zuerst müssen Sie den Socket der Python-Socket-Bibliothek importieren und dann die lokale IP-Adresse und Portnummer des Servers angeben. Sie können dies später selbst festlegen, solange es nicht zu Konflikten mit anderen auf dem Computer geöffneten Diensten kommt .
Im Code wird zunächst ein leerer Socket-Objektserver eingerichtet, was hier mit der Funktion socket.socket erfolgt. Der erste Parameter AF_INET repräsentiert das IPv4-Protokoll und der zweite Parameter SOCK_STREAM repräsentiert die Verwendung des TCP-Protokolls.
Als nächstes verwenden Sie die Bindefunktion, um den Socket-Server an die lokale IP und die entsprechende Portnummer zu binden. Dabei wird die Tupelform verwendet und die lokale IP und die Portnummer werden als Parameter übergeben in einfache Anführungszeichen gesetzt werden.
Starten Sie dann das Abhören des Socket-Servers und nutzen Sie die Listen-Funktion. In diesem Beispiel empfängt der Server die Socket-Informationen, die der lokalen IP- und Portnummer entsprechen, akzeptiert die Verbindungsanforderung und gibt eine Verbindungserfolgsmeldung zurück.
Verwenden Sie abschließend eine Schleife, um die Anfrage des Clients kontinuierlich zu überwachen, jedes Mal eine Anfrage zu erhalten, die IP-Adresse des verbundenen Clients auszudrucken, dann die vom Client gesendeten Daten zu empfangen, sie auszudrucken und eine Antwort zu senden. Schließen Sie nach Abschluss der Datenübertragung die Verbindung.
Die Verwendung von Socket-Sockets für die Netzwerkprogrammierung in Python bietet Ihnen mehr Freiheit und Sie können verschiedene netzwerkkommunikationsbasierte Anwendungen einfach und flexibel implementieren. Hier finden Sie eine kurze Einführung in die Implementierung serverseitiger Sockets in Python hilft.
Das obige ist der detaillierte Inhalt vonPython-Serverprogrammierung: Netzwerk-Sockets ausführlich erklärt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!