这里有新鲜出炉的 Python 多线程编程,程序狗速度看过来!
Python 是一种面向对象、解释型计算机程序设计语言,由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于 1991 年。Python 语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是 C/C++)很轻松地联结在一起。
这篇文章主要介绍了 Python 简单网络编程, 详细介绍了客户端与服务端的具体实现技巧与相关注意事项, 需要的朋友可以参考下
本文实例讲述了 Python 简单网络编程。分享给大家供大家参考,具体如下:
内容目录
1. 客户端(client.py)
2. 服务端(server.py)
一、客户端(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)
程序通过 socket.socket() 建立一个 Socket,参数告诉系统需要一个 Internet Socket 进行 TCP 通信。接着程序链接远程的主机名,并提供文件名。最后获得响应后在屏幕上打印出来。
测试
- python client.py quux.org /
显示
- 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 +
二、服务端(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()
建立一个 socket,设置成可复用的(reusable),绑定端口号 51421(可选大于 1024 的任一值),调用 listen()函数,开始等待来自客户端的请求,同时设定最多只有一个等候处理的链接。
主循环对 a.accept()函数调用开始,程序连接一个客户端后立马停止,接收用户的输入。
运行一个例子
首先运行 server.py
- python server.py
另开一个终端,连接 localhost 的 51421 端口。
- jihite@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 程序设计有所帮助。
来源: http://www.phperz.com/article/17/0716/336241.html