


Python-Socket-Netzwerkprogrammierung, TCP/IP-Server- und Client-Kommunikation
Python-Socket-Netzwerkprogrammierung
Ich bin neu in Python und habe vor einiger Zeit zwei Bücher gekauft, „Python Programming from Introduction to Practice“ und „Python Core Programming Third“. Edition“, Bd. In einem Buch geht es hauptsächlich um einige grundlegende Grammatik und einige grundlegende Verwendungsmethoden, während das zweite Buch viel ausführlicher ist. Ich glaube, ich habe nur ein geringes Verständnis davon. Ich habe diesen Teil der Netzwerkprogrammierung zufällig gesehen , und es gibt immer noch viele Dinge, die ich nicht verstehe. Aber wenn Sie darüber nachdenken, sollten Sie früher oder später durch Ihre eigene kontinuierliche Erkundung und Suche nach Informationen und Lernen transparenter werden ...
Das Hauptmodul In diesem Teil wird das Socket-Modul verwendet. In diesem Modul finden Sie die Socket-Funktion (), mit der Socket-Objekte erstellt werden. Sockets verfügen auch über einen eigenen Satz von Methoden, mit denen eine Socket-basierte Netzwerkkommunikation implementiert werden kann.
Socket()-Modulfunktion
Um einen Socket zu erstellen, müssen Sie die Funktion socket.socket() verwenden. Die allgemeine Syntax lautet wie folgt:
socket(socket_family, socket_type, protocol=0)
Wobei socket_family AF_UNIX oder AF_INET ist, socket_type SOCK_STREAM oder SOCK_DGRAM ist, wird das Protokoll normalerweise weggelassen, Standard = 0.
Erstellen Sie also ein TCP/IP-Suite-Socket, Sie können die folgende Methode verwenden, um socket.socket() aufzurufen.
tcpSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
Erstellen Sie auf ähnliche Weise einen UDP/IP-Socket und verwenden Sie ihn Rufen Sie die folgende Methode auf:
udpSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
Erstellen eines TCP-Servers
Der Prozess des Erstellens eines Der TCP-Server ist im Grunde wie folgt, was nicht der eigentliche Prozess ist. Der Code von
ss = socket() #创建服务器套接字 ss.bind() #套接字与地址绑定 ss.listen() #监听连接 inf_loop: #服务器无限循环 cs = ss.accepr() #接受客户端连接 comm_loop: #通信循环 cs.recv()/cs.send() #对话(接收/发送) cs.close() #关闭客户端套接字 ss.close() #关闭服务器套接字(可选)
Der grundlegende Prozess zum Erstellen eines TCP-Servers ist wie oben erwähnt . Es kann etwas anders sein, aber die Grundidee sollte dieselbe sein. Der Code des echten Servers ist:
#!/usr/bin/env python # -*- coding: utf-8 -*- from socket import * #将 socket 属性引入到命名空间 HOST = '' #这是对 bind()方法的标识表示可以使用任何可用的地址 PORT = 21571 #端口号 BUFSIZ = 1024 #缓冲区大小,1kb ADDR = (HOST,PORT) #地址???? tcpSerSocket = socket(AF_INET,SOCK_STREAM) #创建 tcp 套接字 tcpSerSocket.bind(ADDR) #将地址绑定到套接字上 tcpSerSocket.listen(5) #设置并启动套接字监听 while True: #无限循环,等待客户端连接 print('waiting for connection...') tcpCliSocket,addr = tcpSerSocket.accept() #被动接受客户端连接 print('...connected from:',addr) while True: #对话循环,等待客户端发送消息 data = tcpCliSocket.recv(BUFSIZ) #接收客户端消息 if not data: #如果消息是空白,跳出对话循环,关闭当前连接 break tcpCliSocket.send(data) #如果收到消息,将消息原封不动返回客户端 tcpCliSocket.close() tcpSerSocket.close()
Erstellen TCP-Client
Dasselbe wie oben, ein einfacher Nicht-Code-Prozess
cs = socket() #创建客户端套接字 cs.connect() #尝试连接服务器 comm_loop: #通信循环 cs.send()/cs.recv() #对话(发送/接收) cs.close() #关闭客户端套接字
Tatsächlich wird beim Erstellen eines Der Kunde übersetzt auch die oben genannten Schritte
#!/usr/bin/env python # -*- coding: utf-8 -*- from socket import * HOST = 'localhost' #服务器的主机名 PORT = 21571 #端口号 BUFSIZ = 1024 #缓冲区 ADDR = (HOST,PORT) #地址 tcpCliSocket = socket(AF_INET,SOCK_STREAM) #创建客户端套接字 tcpCliSocket.connect(ADDR) #连接服务器 while True: #通信循环 data = input('> ') #客户端输入信息 if not data: #如果输入信息为空,则跳出循环,关闭通信 break data = str.encode(data) tcpCliSocket.send(data) #发送客户端信息 data = tcpCliSocket.recv(BUFSIZ) #接受服务器返回信息 if not data: #如果服务器未返回信息,关闭通信循环 break print('get:',data.decode('utf-8')) tcpCliSocket.close()
Natürlich ist dies nur die grundlegendste Kommunikation, und ich weiß nicht viel über Dinge wie den Hostnamen Was ich jetzt mache, ist nur die Kommunikation auf demselben Computer, und die Portnummer muss auch konsistent sein. Was ist, wenn verschiedene Computer kommunizieren? Ich bin nur ein Neuling...
Vielen Dank fürs Lesen, ich hoffe, es kann Ihnen helfen, vielen Dank für Ihre Unterstützung dieser Website!
Weitere Artikel zur Python-Socket-Netzwerkprogrammierung, TCP/IP-Server- und Client-Kommunikation 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

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

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 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 kann man nicht erkannt werden, wenn Sie Fiddlereverywhere für Man-in-the-Middle-Lesungen verwenden, wenn Sie FiddLereverywhere verwenden ...

Regelmäßige Ausdrücke sind leistungsstarke Tools für Musteranpassung und Textmanipulation in der Programmierung, wodurch die Effizienz bei der Textverarbeitung in verschiedenen Anwendungen verbessert wird.

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 ...

Wie erstellt in Python ein Objekt dynamisch über eine Zeichenfolge und ruft seine Methoden auf? Dies ist eine häufige Programmieranforderung, insbesondere wenn sie konfiguriert oder ausgeführt werden muss ...

In dem Artikel werden beliebte Python-Bibliotheken wie Numpy, Pandas, Matplotlib, Scikit-Learn, TensorFlow, Django, Flask und Anfragen erörtert, die ihre Verwendung in wissenschaftlichen Computing, Datenanalyse, Visualisierung, maschinellem Lernen, Webentwicklung und h beschreiben
