天天看点

python socket编程_使用Python进行socket编程.pdf

使用 Python 进行 socket 编程

体验 Python

下面我们先对 Python 是什么建立一个直观印象。

作为一种解释性语言,Python 很容易使用,并且能够快速验证我们的想法和开发原型软件。

Python 程序可以作为一个整体进行解释,也可以一行行地解释。

可以在第一次运行 Python 时测试一下下面的 Python 代码,然后一次只输入一行试试。在

Python 启动之后,会显示一个提示符(>>>),可以在这里输入命令。 注意在 Python 中,缩

进非常重要,因此代码前面的空格不能忽略:

清单 1. 可以试验的几个 Python 例子

# Open a file, read each line, and print it out

for line in open('file.txt'):

print line

# Create a file and write to it

file = open("test.txt", "w")

file.write("test line\n")

file.close()

# Create a small dictionary of names and ages and manipulate

family = {'Megan': 13, 'Elise': 8, 'Marc': 6}

# results in 8

family['Elise']

# Remove the key/value pair

del family['Elise']

# Create a list and a function that doubles its input. Map the

# function to each of the elements of the list (creating a new

# list as a result).

arr = [1, 2, 3, 4, 5]

def double(x): return x*x

map(double, arr)

# Create a class, inherit by another, and then instantiate it and

# invoke its methods.

class Simple:

def __init__(self, name):

= name

def hello(self):

print +" says hi."

class Simple2(Simple):

def goodbye(self):

print +" says goodbye."

me = Simple2("Tim")

me.hello()

me.goodbye()

为什么使用 Python?

我们要学习和使用 Python 的一个原因是它非常流行。Python 用户的数量以及使用 Python 编

写的应用程序的不断增长使这种努力是值得的。

在很多开发领域中都可以看到 Python 的踪迹,它被用来构建系统工具,用作程序集成的黏合剂,

用来开发 Internet 应用程序和快速开发原型。

Python 与其他脚本语言相比也有一定的优势。它的语法非常简单,概念非常清晰,这使得 Python

非常容易学习。在使用复杂的数据结构(例如列表、词典和元组)时,Python 也非常简单,而

且可描述性更好。Python 还可以对语言进行扩充,也可以由其他语言进行扩充。

我发现 Python 的语法使它比 Perl 的可读性和可维护性更好,但是比 Ruby 要差。与 Ruby 相

比,Python 的优点在于它有大量的库和模块可以使用。使用这些库和模块,只需要很少的代码

就可以开发功能丰富的程序。

Python 使用缩进格式来判断代码的作用域,这有些讨厌,但是 Python 本身的简单性使这个问

题已经微不足道了。

现在,让我们开始进入 Python 中的 socket 编程世界。

Python socket 模块

基本的 Python socket 模块

Python 提供了两个基本的 socket 模块。第一个是 Socket,它提供了标准的

BSD Sockets API。第二个是 SocketServer,它提供了服务器中心类,可以简化

网络服务器的开发。Python 使用一种异步的方式来实现这种功能,您可以提供

一些插件类来处理服务器中应用程序特有的任务。表 1 列出了本节所涉及的类

和模块。

表 1. Python 类和模块

类/模块