各位用户为了找寻关于Python简单网络编程示例【客户端与服务端】的资料费劲了很多周折。这里教程网为您整理了关于Python简单网络编程示例【客户端与服务端】的相关资料,仅供查阅,以下为您介绍关于Python简单网络编程示例【客户端与服务端】的详细内容
本文实例讲述了Python简单网络编程。分享给大家供大家参考,具体如下:
内容目录
1. 客户端(client.py) 2. 服务端(server.py)
一、客户端(client.py)
? 1 2 3 4 5 6 7 8 9 10 11import
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)
程序通过socket.socket()建立一个Socket,参数告诉系统需要一个Internet Socket进行TCP通信。接着程序链接远程的主机名,并提供文件名。最后获得响应后在屏幕上打印出来。
测试
? 1python client.py quux.org
/
显示
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32iWelcome 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
+
二、服务端(server.py)
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18# 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()
建立一个socket,设置成可复用的(reusable),绑定端口号51421(可选大于1024的任一值),调用listen()函数,开始等待来自客户端的请求,同时设定最多只有一个等候处理的链接。
主循环对a.accept()函数调用开始,程序连接一个客户端后立马停止,接收用户的输入。
运行一个例子
首先运行server.py
? 1python server.py
另开一个终端,连接localhost的51421端口。
? 1 2 3 4 5 6 7 8jihite@ubuntu:~
/
web$ telnet localhost
51421
Trying
127.0
.
0.1
...
Connected to localhost.
Escape character
is
'^]'
.
Welcome, (
'127.0.0.1'
,
59853
)
Please enter a string: mm
You entered
2
characters.
Connection closed by foreign host.
希望本文所述对大家Python程序设计有所帮助。