您的位置:首页 > 编程语言 > Python开发

python-socket模块介绍

2014-04-17 16:00 260 查看
基本的 Python socket 模块Python 提供了两个基本的 socket 模块。第一个是 Socket,它提供了标准的 BSD Sockets API。第二个是 SocketServer, 它提供了服务器中心类,可以简化网络服务器的开发。Python 使用一种异步的方式来实现这种功能,您可以提供一些插件类来处理服务器中应用程序特有的任务。表 1 列出了本节所涉及的类和模块。表1. Python 类和模块

类/模块说明
Socket低层网络接口(每个 BSD API)
SocketServer提供简化网络服务器开发的类
让我们来看一下这些模块,以便理解它们是如何工作的。

socket 模块

Socket 模块提供了 UNIX 程序员所熟悉的基本网络服务(也称为 BSD API)。这个模块中提供了在构建 socket 服务器和客户机时所需要的所有功能。这个 API 与标准的 C API 之间的区别在于它是面向对象的。在C中,socket描述符是从socket调用中获得的,然后会作为一个参数传递给BSD API函数。在Python中,socket 方法会向应用socket方法的对象返回一个socket对象。表2给出了几个类方法,表3显示了一部分实例方法。表2. Socket 模块的类方法

类方法说明
Socket低层网络接口(每个 BSD API)
socket.socket(family, type)创建并返回一个新的 socket 对象
socket.getfqdn(name)将使用点号分隔的 IP 地址字符串转换成一个完整的域名
socket.gethostbyname(hostname)将主机名解析为一个使用点号分隔的 IP 地址字符串
socket.fromfd(fd, family, type)从现有的文件描述符创建一个 socket 对象
表3. Socket 模块的实例方法

实例方法说明
sock.bind( (adrs, port) )将 socket 绑定到一个地址和端口上
sock.accept()返回一个客户机 socket(带有客户机端的地址信息)
sock.listen(backlog)将 socket 设置成监听模式,能够监听 backlog 外来的连接请求
sock.connect( (adrs, port) )将 socket 连接到定义的主机和端口上
sock.recv( buflen[, flags] )从 socket 中接收数据,最多 buflen 个字符
sock.recvfrom( buflen[, flags] )从 socket 中接收数据,最多 buflen 个字符,同时返回数据来源的远程主机和端口号
sock.send( data[, flags] )通过 socket 发送数据
sock.sendto( data[, flags], addr )通过 socket 发送数据
sock.close()关闭 socket
sock.getsockopt( lvl, optname )获得指定 socket 选项的值
sock.setsockopt( lvl, optname, val )设置指定 socket 选项的值
类方法和实例方法之间的区别在于,实例方法需要有一个socket实例(从socket返回)才能执行,而类方法 则不需要。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: