python-socket模块介绍
基本的 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返回)才能执行,而类方法 则不需要。
转载于:https://blog.51cto.com/winters/1397286
python-socket模块介绍相关推荐
- python url模块介绍_python 中 urlparse 模块介绍
urlparse模块主要是用于解析url中的参数 对url按照一定格式进行 拆分或拼接 1.urlparse.urlparse 将url分为6个部分,返回一个包含6个字符串项目的元组:协议.位置.路 ...
- python socket模块实现udp通信_Python基于socket模块实现UDP通信功能示例
Python基于socket模块实现UDP通信功能示例 本文实例讲述了Python基于socket模块实现UDP通信功能.分享给大家供大家参考,具体如下: 一 代码 1.接收端 import sock ...
- python socket模块作用_python之socket模块详解--小白博客
主要是创建一个服务端,在创建服务端的时候,主要步骤如下: 创建socket对象socket-->绑定IP地址和端口bind-->监听listen-->得到请求accept--> ...
- Django中间件与python日志模块 介绍
一.Django中间件 1.1 介绍 Django中的中间件是一个轻量级.底层的插件系统,介于request与response处理之间的一道处理过程(用来处理特定业务的请求和响应).中间件的设计为开发 ...
- python导入模块介绍_详解Python模块导入方法
python常被昵称为胶水语言,它能很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松联结在一起.python包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的 ...
- python socket模块[errno 113_error:
一 问题出现背景supervisorctl update error: , [Errno 113] No route to host: file: /usr/lib64/python2.7/socke ...
- python有限元分析框架_sfepy: python有限元分析模块介绍-【1】安装
现有的商业有限元软件ansys.MSC marc等比较昂贵,我们可以选用sfepy来进行有限元分析,其官方网站如下: SfePy: Simple Finite Elements in Pythons ...
- Python socket模块
Socket(套接字) = IP地址:端口号,在网络层通过IP地址找到主机,在传输层通过端口号找到应用进程.每一个传输层连接唯一的被通信两端的两个套接字所确定. python中,通过socket()函 ...
- Python fractions 模块介绍
fractions - 分数 fractions 模块是Python3内置的标准库,无需pip安装,在使用时直接导入就行 fractions 模块支持分数运算. 将小数表示成分数(分数约分,分数计算) ...
最新文章
- js数组去重的四种方法
- 【转载】视频CDN技术原理与流程说明
- Spark1.4 和 Hive 1.1.1 启动错误
- 范围for语句的整理
- mysql trim 索引_mysql强大的trim()函数
- 信息竞赛进阶指南--搜索相关(模板)
- python3 2.00gb怎么去掉单位_最值得期待的Python 3.9的新功能
- Vim的基本操作总结
- Android MVP模式简单易懂的介绍方式 (一)
- 【十六】Jmeter:目录介绍
- Facebook 在西雅图和匹兹堡建立新AI实验室,业界担心大学人才争夺战烽火再起...
- 拓端tecdat|R语言K-means和层次聚类分析癌细胞系微阵列数据和树状图可视化比较
- Mini-project # 1 - Rock-paper-scissors-lizard-Spock
- Scatter-gather DMA 与 block DMA
- 一篇文章带你彻底了解Kubernetes
- Omnipeek空口抓包(4):抓取路由器下的无线网络包
- 《异星工厂》秘籍大全(lua控制台/代码修改)
- 设计模式(四)~结构型模式(2)
- CUDA学习资源整合
- 《塔木德智慧全书》--艾格
热门文章
- 苹果修复 Gatekeeper 绕过漏洞
- Realtek WiFi SDK 被曝多个漏洞,影响供应链上至少65家厂商近百万台IoT设备
- 他在 Stack Overflow 提问如何黑掉Stack Overflow,结果成了
- 相机获取的照片向左自动旋转90度解决方法
- Kafka 学习笔记之 架构
- PHP关闭$_ENV后获取服务器参数的办法
- c与c++分别是怎样动态分配和释放内存的,有什么区别?(转)
- tablesorter,jquery
- vue:axios二次封装,接口统一存放
- RTL8188ce无线网卡驱动在Ubuntu/Ubuntu Kylin 13.10中的安装-转