基本的 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模块介绍相关推荐

  1. python url模块介绍_python 中 urlparse 模块介绍

    urlparse模块主要是用于解析url中的参数  对url按照一定格式进行 拆分或拼接 1.urlparse.urlparse 将url分为6个部分,返回一个包含6个字符串项目的元组:协议.位置.路 ...

  2. python socket模块实现udp通信_Python基于socket模块实现UDP通信功能示例

    Python基于socket模块实现UDP通信功能示例 本文实例讲述了Python基于socket模块实现UDP通信功能.分享给大家供大家参考,具体如下: 一 代码 1.接收端 import sock ...

  3. python socket模块作用_python之socket模块详解--小白博客

    主要是创建一个服务端,在创建服务端的时候,主要步骤如下: 创建socket对象socket-->绑定IP地址和端口bind-->监听listen-->得到请求accept--> ...

  4. Django中间件与python日志模块 介绍

    一.Django中间件 1.1 介绍 Django中的中间件是一个轻量级.底层的插件系统,介于request与response处理之间的一道处理过程(用来处理特定业务的请求和响应).中间件的设计为开发 ...

  5. python导入模块介绍_详解Python模块导入方法

    python常被昵称为胶水语言,它能很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松联结在一起.python包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的 ...

  6. python socket模块[errno 113_error:

    一 问题出现背景supervisorctl update error: , [Errno 113] No route to host: file: /usr/lib64/python2.7/socke ...

  7. python有限元分析框架_sfepy: python有限元分析模块介绍-【1】安装

    现有的商业有限元软件ansys.MSC marc等比较昂贵,我们可以选用sfepy来进行有限元分析,其官方网站如下: SfePy: Simple Finite Elements in Python​s ...

  8. Python socket模块

    Socket(套接字) = IP地址:端口号,在网络层通过IP地址找到主机,在传输层通过端口号找到应用进程.每一个传输层连接唯一的被通信两端的两个套接字所确定. python中,通过socket()函 ...

  9. Python fractions 模块介绍

    fractions - 分数 fractions 模块是Python3内置的标准库,无需pip安装,在使用时直接导入就行 fractions 模块支持分数运算. 将小数表示成分数(分数约分,分数计算) ...

最新文章

  1. js数组去重的四种方法
  2. 【转载】视频CDN技术原理与流程说明
  3. Spark1.4 和 Hive 1.1.1 启动错误
  4. 范围for语句的整理
  5. mysql trim 索引_mysql强大的trim()函数
  6. 信息竞赛进阶指南--搜索相关(模板)
  7. python3 2.00gb怎么去掉单位_最值得期待的Python 3.9的新功能
  8. Vim的基本操作总结
  9. Android MVP模式简单易懂的介绍方式 (一)
  10. 【十六】Jmeter:目录介绍
  11. Facebook 在西雅图和匹兹堡建立新AI实验室,业界担心大学人才争夺战烽火再起...
  12. 拓端tecdat|R语言K-means和层次聚类分析癌细胞系微阵列数据和树状图可视化比较
  13. Mini-project # 1 - Rock-paper-scissors-lizard-Spock
  14. Scatter-gather DMA 与 block DMA
  15. 一篇文章带你彻底了解Kubernetes
  16. Omnipeek空口抓包(4):抓取路由器下的无线网络包
  17. 《异星工厂》秘籍大全(lua控制台/代码修改)
  18. 设计模式(四)~结构型模式(2)
  19. CUDA学习资源整合
  20. 《塔木德智慧全书》--艾格

热门文章

  1. 苹果修复 Gatekeeper 绕过漏洞
  2. Realtek WiFi SDK 被曝多个漏洞,影响供应链上至少65家厂商近百万台IoT设备
  3. 他在 Stack Overflow 提问如何黑掉Stack Overflow,结果成了
  4. 相机获取的照片向左自动旋转90度解决方法
  5. Kafka 学习笔记之 架构
  6. PHP关闭$_ENV后获取服务器参数的办法
  7. c与c++分别是怎样动态分配和释放内存的,有什么区别?(转)
  8. tablesorter,jquery
  9. vue:axios二次封装,接口统一存放
  10. RTL8188ce无线网卡驱动在Ubuntu/Ubuntu Kylin 13.10中的安装-转