


Ausführliche Erklärung und einfache Beispiele der verdrehten Programmierung in Python
Detaillierte Erklärung der verdrehten Programmierung in Python
Vorwort:
Ich bin nicht gut im Schreiben von Socket-Code. Zum einen ist es schwieriger, in C zu schreiben, zum anderen habe ich dafür normalerweise keinen Bedarf. Erst als ich es wirklich verstehen wollte, wurde mir klar, dass ich in diesem Bereich wirklich Verbesserungsbedarf hatte. Kürzlich musste ich aus Projektgründen etwas Python-Code schreiben und habe herausgefunden, wie cool es ist, Sockets unter Python zu entwickeln.
Bei den meisten Sockets müssen Benutzer nur auf drei Ereignisse achten. Dabei handelt es sich um das Erstellen, Löschen sowie Senden und Empfangen von Daten. Die Twisted-Bibliothek in Python kann uns dabei helfen, dieses Ziel zu erreichen, und ihre Verwendung ist nicht problematisch. Der folgende Code stammt von der Twistedmatrix-Website. Ich finde ihn ziemlich gut, deshalb werde ich ihn hier veröffentlichen, um ihn mit Ihnen zu teilen. Wenn Sie einen Test durchführen müssen, verwenden Sie einfach Telnet Localhost 8123. Wenn Sie Signale in Twisted verarbeiten müssen, können Sie zuerst die Signalfunktion registrieren, in der Signalfunktion Reaktor.stop () aufrufen und dann wird Twisted weiterhin stop_factory aufrufen, sodass Sie die verbleibenden Bereinigungsarbeiten fortsetzen können.
from twisted.internet.protocol import Factory from twisted.protocols.basic import LineReceiver from twisted.internet import reactor class Chat(LineReceiver): def __init__(self, users): self.users = users self.name = None self.state = "GETNAME" def connectionMade(self): self.sendLine("What's your name?") def connectionLost(self, reason): if self.name in self.users: del self.users[self.name] def lineReceived(self, line): if self.state == "GETNAME": self.handle_GETNAME(line) else: self.handle_CHAT(line) def handle_GETNAME(self, name): if name in self.users: self.sendLine("Name taken, please choose another.") return self.sendLine("Welcome, %s!" % (name,)) self.name = name self.users[name] = self self.state = "CHAT" def handle_CHAT(self, message): message = "<%s> %s" % (self.name, message) for name, protocol in self.users.iteritems(): if protocol != self: protocol.sendLine(message) class ChatFactory(Factory): def __init__(self): self.users = {} # maps user names to Chat instances def buildProtocol(self, addr): return Chat(self.users) def startFactory(self): print 'start' def stopFactory(self): print 'stop' reactor.listenTCP(8123, ChatFactory()) reactor.run()
Vielen Dank fürs Lesen, ich hoffe, es kann Ihnen helfen, vielen Dank für Ihre Unterstützung dieser Website!
Ausführlichere Erklärungen und einfache Beispiele für Twisted-in-Python-Programmierung finden Sie auf der chinesischen PHP-Website!

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

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

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Lösung für Erlaubnisprobleme beim Betrachten der Python -Version in Linux Terminal Wenn Sie versuchen, die Python -Version in Linux Terminal anzuzeigen, geben Sie Python ein ...

Wie kann man nicht erkannt werden, wenn Sie Fiddlereverywhere für Man-in-the-Middle-Lesungen verwenden, wenn Sie FiddLereverywhere verwenden ...

Wie lehre ich innerhalb von 10 Stunden die Grundlagen für Computer -Anfänger für Programmierungen? Wenn Sie nur 10 Stunden Zeit haben, um Computer -Anfänger zu unterrichten, was Sie mit Programmierkenntnissen unterrichten möchten, was würden Sie dann beibringen ...

Bei der Verwendung von Pythons Pandas -Bibliothek ist das Kopieren von ganzen Spalten zwischen zwei Datenrahmen mit unterschiedlichen Strukturen ein häufiges Problem. Angenommen, wir haben zwei Daten ...

Wie hört Uvicorn kontinuierlich auf HTTP -Anfragen an? Uvicorn ist ein leichter Webserver, der auf ASGI basiert. Eine seiner Kernfunktionen ist es, auf HTTP -Anfragen zu hören und weiterzumachen ...

Fastapi ...

Verwenden Sie Python im Linux -Terminal ...

Verständnis der Anti-Crawling-Strategie von Investing.com Viele Menschen versuchen oft, Nachrichten von Investing.com (https://cn.investing.com/news/latest-news) zu kriechen ...
