Heim > Artikel > Backend-Entwicklung > Einführung in die Methode zur Implementierung der Socket-Kommunikation in Python
Das Beispiel in diesem Artikel beschreibt, wie man eine einfache Socket-Kommunikation in Python implementiert. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
Ich habe gerade angefangen, mit Python in Kontakt zu kommen und ein Helloworld-Programm implementiert – eine Socket-Kommunikationsdemo über das UDP-Protokoll.
Zunächst wird die Serverseite wie folgt implementiert:
import socket, traceback host = '' # Bind to all interfaces port = 51500 # Step1: 创建socket对象 s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # Step2: 设置socket选项(可选) s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # Step3: 绑定到某一个端口 s.bind((host, port)) # Step4: 监听该端口上的连接 while 1: try: message, address = s.recvfrom(8192) print "Got data from ", address s.sendto("Data is received succeefully.", address) except (KeyboardInterrupt, SystemExit): print "raise" raise except : print "traceback" traceback.print_exc()
Unter diesen ist der Host auf leer gesetzt, was bedeutet dass es an alle Schnittstellen und Adressen gebunden werden kann, egal welcher Client die Anfrage stellt, solange es an denselben Port gebunden ist, kann der Server die Anfrage abhören.
In einer TCP-Verbindung erfordert das Abhören von Client-Anfragen die Verwendung der Listen- oder Accept-Funktion sowie einen dedizierten Socket und eine Remote-Verbindung.
Dann lassen Sie unseren Kunden Folgendes implementieren:
import socket, sys # Step1: 输入host和port信息 host = raw_input('please input host name: ') textport = raw_input('please input textport: ') # Step2: 创建socket对象 s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) try: port = int(textport) except ValueError: port = socket.getservbyname(textport, 'udp') # Step3: 打开socket连接 s.connect((host, port)) # Step4: 发送数据 print "Enter data to transmit: " data = sys.stdin.readline().strip() s.sendall(data) # Step5: 接收服务器发过来的数据 print "Looking for replies; press Ctrl-C or Ctrl-Break to stop" while 1: buf = s.recv(2048) if not len(buf): break sys.stdout.write(buf)
Dieses Beispiel ist so einfach und die Implementierung ist fast die gleiche wie die C-Sprache Version. Es scheint, dass die Implementierung in verschiedenen Sprachen nahezu gleich ist, solange Sie die Socket-Programmierung verstehen.
Weitere verwandte Artikel darüber, wie Python die Socket-Kommunikation implementiert, finden Sie auf der chinesischen PHP-Website!