Heim >Backend-Entwicklung >Python-Tutorial >Einfaches Beispiel für die Netzwerkprogrammierung eines Python-Clients und -Servers

Einfaches Beispiel für die Netzwerkprogrammierung eines Python-Clients und -Servers

黄舟
黄舟Original
2017-05-28 11:11:081993Durchsuche

Dieser Artikel stellt hauptsächlich PythonSimple NetworkProgrammierung vor und beschreibt die spezifischen Implementierungsfähigkeiten und zugehörigen Hinweise des Clients und Servers, die erforderlich sind Freunde können siehe

Dieser Artikel beschreibt die einfache Netzwerkprogrammierung in Python mit Beispielen. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Inhaltsverzeichnis

1. Client (client.py)
2 .py) )

1. Client (client.py)

import socket
import sys
port = 70
host = sys.argv[1]
filename = sys.argv[2]
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))
fd = s.makefile("rw", 0)
fd.write(filename + "\n")
for line in fd.readlines():
  sys.stdout.write(line)

Das Programm erstellt einen Socket über socket.socket() und die Parameter sagen: Das System benötigt einen Internet-Socket für die TCP-Kommunikation. Das Programm stellt dann eine Verbindung zum Remote-Hostnamen her und stellt den Dateinamen bereit. Nachdem Sie endlich die Antwort erhalten haben, drucken Sie sie auf dem Bildschirm aus.

Test

python client.py quux.org /

Anzeige

iWelcome to gopher at quux.org! fake  (NULL) 0
i  fake  (NULL) 0
iThis server has a lot of information of historic interest, fake  (NULL) 0
ifunny, or just plain entertaining -- all presented in Gopher. fake  (NULL) 0
iThere are many mirrors here of rare or valuable files with the fake  (NULL) 0
iaim to preserve them in case their host disappears. PLEASE READ  fake  (NULL) 0
i"About This Server" FOR IMPORTANT NOTES AND LEGAL INFORMATION. fake  (NULL) 0
i  fake  (NULL) 0
0About This Server /About This Server.txt gopher.quux.org 70 +
1Archives  /Archives  gopher.quux.org 70 +
1Books /Books gopher.quux.org 70 +
1Communication /Communication gopher.quux.org 70 +
iThis directory contains the entire text of the book  fake  (NULL) 0
i"We the Media: Grassroots Journalism by the People, for the People"  fake  (NULL) 0
iby Dan Gillmor in various formats. fake  (NULL) 0
i  fake  (NULL) 0
iFeel free to download and enjoy.  fake  (NULL) 0
1Computers /Computers gopher.quux.org 70 +
1Current Issues and Events (Updated Apr. 23, 2002) /Current  gopher.quux.org 70 +
1Development Projects  /devel gopher.quux.org 70 +
0Gopher's 10th Anniversary /3.0.0.txt gopher.quux.org 70
1Government, Politics, Law, and Conflict  /Government gopher.quux.org 70 +
0How To Help  /How To Help.txt  gopher.quux.org 70 +
1Humor and Fun /Humor and Fun gopher.quux.org 70 +
1Index to Quux.Org /Archives/index gopher.quux.org 70
1Internet  /Internet  gopher.quux.org 70 +
1Other Gopher Servers  /Software/Gopher/servers  gopher.quux.org 70
1People /People gopher.quux.org 70 +
1Reference /Reference gopher.quux.org 70 +
1Software and Downloads /Software  gopher.quux.org 70 +
1The Gopher Project /Software/Gopher  gopher.quux.org 70
0What's New /whatsnew.txt  gopher.quux.org 70 + 

2. Server (server.py)

# coding: utf-8
import socket
host = ''
port = 51421
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind((host, port))
s.listen(1)        #每次最多只有一个等候处理
print "Server is running on port %d; press Ctrl-C to terminate." %port
while 1:
  clientsock, clientaddr = s.accept()
  clientfile = clientsock.makefile('rw', 0)
  clientfile.write("Welcome, " + str(clientaddr) + "\n")
  clientfile.write("Please enter a string: ")
  line = clientfile.readline().strip()
  clientfile.write("You entered %d characters. \n" %len(line))
  clientfile.close()
  clientsock.close()

Erstellen Sie einen Socket, stellen Sie ihn auf Wiederverwendbarkeit (wiederverwendbar) ein, binden Sie die Portnummer 51421 (jeder Wert größer als 1024 ist optional), rufen Sie die Funktion listen() auf und warten Sie auf Anfragen vom Client sind so eingestellt, dass höchstens ein Link gleichzeitig auf die Verarbeitung wartet.

Die Hauptschleife beginnt mit dem Aufruf der Funktion a.accept(). Das Programm stoppt sofort, nachdem eine Verbindung zu einem Client hergestellt wurde, um Benutzereingaben zu empfangen.

Führen Sie ein Beispiel aus

Führen Sie zuerst server.py aus

python server.py
Öffnen Sie ein anderes Terminal und stellen Sie eine Verbindung zu Port 51421 von localhost her.

Das obige ist der detaillierte Inhalt vonEinfaches Beispiel für die Netzwerkprogrammierung eines Python-Clients und -Servers. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn