Dieses Tutorial führt Python -Steckdosen vor und demonstriert, dass HTTP -Server und Clients mithilfe des socket
-Moduls erstellt werden. Außerdem werden Tornado, eine Python-Netzwerkbibliothek, ideal für Langstrecken, Websockets und Anwendungen, die anhaltende Benutzerverbindungen benötigt werden, ideal.
Sockets verstehen
Ein Socket fungiert als Kommunikationskanal zwischen zwei Anwendungen, sei es auf derselben Maschine oder über ein Netzwerk. Im Wesentlichen handelt es sich um eine Verbindungsverbindung zwischen einem Server und einem Client. Der Server enthält Informationen, die vom Client angefordert werden. Ihr Browser verwendet beispielsweise einen Socket, um eine Verbindung zu einem Webserver herzustellen, wenn Sie eine Webseite besuchen.
Das socket
-Modul
Socket -Erstellung verwendet die Funktion socket.socket()
:
import socket s = socket.socket(socket_family, socket_type, protocol=0)
Argumente:
-
socket_family
: Adressfamilie (z. B.socket.AF_INET
für ipv4,socket.AF_INET6
für ipv6). -
socket_type
: Socket -Typ (z. B.socket.SOCK_STREAM
für tcp,socket.SOCK_DGRAM
für udp). -
protocol
: Normalerweise standardmäßig 0.
Sobald Sie ein Socket -Objekt haben, können Sie einen Server oder Client mit seinen Methoden erstellen.
Erstellen eines einfachen Clients
KLAND -METHODEN:
-
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-
s.connect()
: stellt eine TCP -Verbindung her.
Beispiel:
import socket stream_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server = "localhost" port = 8080 server_address = (server, port) stream_socket.connect(server_address) message = 'message' stream_socket.sendall(message.encode()) data = stream_socket.recv(10) print(data) stream_socket.close()
Erstellen eines einfachen Servers
Key Server -Methoden:
-
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-
s.bind()
: weist dem Socket eine Adresse (Hostname, Port) zu. -
s.listen()
: Beginnt an TCP -Verbindungen zu hören. -
s.accept()
: Akzeptiert eine TCP -Client -Verbindung.
Beispiel:
import socket sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) host = 'localhost' port = 8080 sock.bind((host, port)) sock.listen(1) print('Waiting for a connection') connection, client = sock.accept() print(client, 'connected') data = connection.recv(16) print('Received "%s"' % data) if data: connection.sendall(data) else: print('No data from', client) connection.close()
Führen Sie den Client und Server in separaten Terminals für die Kommunikation aus. Verwenden Sie netstat -ntlp
(oder einen ähnlichen Befehl für Ihr Betriebssystem), um die Portnutzung zu überprüfen.
Das Tornado -Framework
Tornado ist ein Python -Web -Framework und eine asynchrone Networking -Bibliothek. Das nicht blockierende E/A übernimmt viele gleichzeitige Verbindungen und ist für langwierige Wäsche, Websockets und Anwendungen geeignet, die anhaltende Verbindungen erfordern.
Ein einfaches Tornado -WebSocket -Beispiel:
import tornado.ioloop import tornado.web class ApplicationHandler(tornado.web.RequestHandler): def get(self): self.write("""<title>Tornado Framework</title><h2 id="Welcome-to-the-Tornado-framework">Welcome to the Tornado framework</h2>""") if __name__ == "__main__": application = tornado.web.Application([ (r"/", ApplicationHandler), ]) application.listen(5001) tornado.ioloop.IOLoop.instance().start()
Tornado integriert sich auch in asyncio
und ermöglicht die Verwendung beider Bibliotheken innerhalb derselben Ereignisschleife.
synchron und asynchrones Programmieren
synchrones Programmieren führt auf die Aufgaben nacheinander aus, während die asynchrone Programmierung eine gleichzeitige Ausführung der Aufgaben ermöglicht, ohne darauf zu warten, dass andere fertiggestellt werden. Die asynchrone Programmierung ist vorteilhaft, wenn Sie mit E/O-gebundenen Operationen wie API-Aufrufen zu tun, Verzögerungen zu verhindern und die Reaktionsfähigkeit der Anwendungen zu verbessern. Die asynchronen Funktionen von Tornado sind besonders nützlich, um mehrere API -Anfragen gleichzeitig zu behandeln.
Schlussfolgerung
Dieses Tutorial bildete eine Grundlage für die Socket -Programmierung in Python und zeigte eine einfache Server-/Client -Erstellung. Eine weitere Untersuchung des socket
-Moduls und Tornado erhöht Ihre Networking -Funktionen. Denken Sie daran, die offizielle Python -Dokumentation zu konsultieren, um detailliertere Informationen zu erhalten.
(Bild des Tornado -Webserver -Ausgangs - Ersetzen
Das obige ist der detaillierte Inhalt vonEinführung in die Netzwerkprogrammierung in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

ToAppendElementStoapythonList, UsTheAppend () methodForsingleElelements, Extend () FormultipleElements, und INSERSt () FORSPECIFIFICEPosition.1) UseAppend () ForaddingOneElementattheend.2) usextend () toaddmultiElementsefficction.3) useInsert () toaddanelementataspeci

TocreateApythonList, usequarebrackets [] andsparateItemswithcommas.1) ListaredynamicandcanholdmixedDatatypes.2) UseAppend (), REME () und SSLICINGFORMIPLUMILATION.3) LISTCOMPRAUMENS

In den Bereichen Finanzen, wissenschaftliche Forschung, medizinische Versorgung und KI ist es entscheidend, numerische Daten effizient zu speichern und zu verarbeiten. 1) In der Finanzierung kann die Verwendung von Speicherzuordnungsdateien und Numpy -Bibliotheken die Datenverarbeitungsgeschwindigkeit erheblich verbessern. 2) Im Bereich der wissenschaftlichen Forschung sind HDF5 -Dateien für die Datenspeicherung und -abnahme optimiert. 3) In der medizinischen Versorgung verbessern die Datenbankoptimierungstechnologien wie die Indexierung und die Partitionierung die Leistung der Datenabfrage. 4) In AI beschleunigen Daten, die Sharding und das verteilte Training beschleunigen, Modelltraining. Die Systemleistung und Skalierbarkeit können erheblich verbessert werden, indem die richtigen Tools und Technologien ausgewählt und Kompromisse zwischen Speicher- und Verarbeitungsgeschwindigkeiten abgewogen werden.

PythonarraysSureScreeatedusedhearrayModule, nicht gebaute Inlikelisten.1) ImportThearrayModule.2) Spezifizieren Sie die THETYPECODE, z.

Zusätzlich zur Shebang -Linie gibt es viele Möglichkeiten, einen Python -Interpreter anzugeben: 1. Verwenden Sie Python -Befehle direkt aus der Befehlszeile; 2. Verwenden Sie Stapeldateien oder Shell -Skripte. 3.. Verwenden Sie Build -Tools wie Make oder CMake; 4. Verwenden Sie Aufgabenläufer wie Invoke. Jede Methode hat ihre Vor- und Nachteile, und es ist wichtig, die Methode auszuwählen, die den Anforderungen des Projekts entspricht.

ForHandlinglargedatasetsinpython, Usenumpyarraysforbetterperformance.1) Numpyarraysarememory-Effiction und FasterFornumericaloperations.2) meidenunnötiger Anbieter.3) HebelVectorisationFecedTimeComplexity.4) ManagemememoryusageSageWithEffizienceDeffictureWitheseffizienz

Inpython, listEUSUutsynamicMemoryAllocationWithover-Accocation, whilenumpyarraysalcodeFixedMemory.1) ListSallocatemoremoryThanneded intellig, vereitelte, dass die sterbliche Größe von Zeitpunkte, OfferingPredictableSageStoageStloseflexeflexibilität.

Inpython, youcansspecthedatatypeyFelemeremodelerernspant.1) Usenpynernrump.1) Usenpynerp.dloatp.Ploatm64, Formor -Präzise -Preciscontrolatatypen.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

DVWA
Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor
