python系列-socket库应用详解

文章目录

  • python系列-socket库应用详解
  • 一. socket库的函数
  • 二.socket库的方法
    • 1.connect(address):
    • 2.accept():
    • 3.recv(bufsize):
    • 4.recvfrom(bufsize) :
    • 5.send(bytes):
    • 6.sendto(bytes, flags, address):
    • 7.close():
    • 8.bind(address):
    • 9.listen([backlog]) :

一. socket库的函数

函数名 参数 作用
gethostname() 无参数 返回主机名
gethostbyname('主机名‘) 主机名 将主机名转换为ipv4地址
gethostbyname_ex(‘主机名’) 主机名 返回主机名、主机别名列表、主机IP地址列表
gethostbyaddr('ip地址‘) ip地址 返回三元组(主机名,主机别名列表,主机IP地址列表)
getservbyport(端口号’,‘协议名’) 端口号,协议名 返回该端口号的服务名,仅限于本机
getservbyname(‘服务名’,‘协议名’) 服务名,协议名 返回该服务所在的端口号
getsockname() 无参数 返回自己捆绑的IPv4地址
getaddrinfo(‘主机名’,‘端口号’) 主机名,端口号 返回五元组,用于获取主机名的地址信息,兼容ipv4和ipv6
socket(family,type) family:socket.AF_INET(IPv4)
         socket.AF_INET6(IPv6)
             AF_UNIX(同一台机器上的进程间通信)
type:socket.SOCK_STREAM(TCP连接)
     socket.SOCK_DGRAM(UDP协议)
创建一个已知IP地址和协议类型的连接
connect((host,port)) (主机名,端口号) 与该主机的端口进行远程连接,注意括号
gettimeout() 无参数 返回socket超时时间,单位为s
settimeout(timeout) 超时时间 设置socket超时时间

二.socket库的方法

1.connect(address):

      连接到一个address(IP地址)对应的远程socket。如果连接被中断,这个方法会等待直到连接完成,或者会抛出一个socket.timeout错误

2.accept():

      接受一个连接,但前提是socket必须已经绑定了一个地址,在等待连接。在默认情况下,socket是阻塞式的,意思就是socket的方法的调用在任务完成之前是不会返回的。
      调用accept方法时,socket会时入“waiting”状态。客户请求连接时,方法建立连接并返回服务器。accept方法返回一个含有两个元素的元组(connection,address)。第一个元素connection是新的socket对象,服务器必须通过它与客户通信;第二个元素address是客户的Internet地址。

3.recv(bufsize):

      从socket接收数据,注意是byte类型,bufsize指定一次最多接收的数据大小。

4.recvfrom(bufsize) :

      与上一个recv(bufsize)方法的区别是返回值除了数据还有发送数据的地址,返回值是一个数据,地址对(data, address)。

5.send(bytes):

      发送数据到socket,前提是已经连接到远程socket,返回值是发送数据的量,检查数据是否发送完是应用的责任。

6.sendto(bytes, flags, address):

      基本与socket.send()相同。

7.close():

      关闭连接,当socket.close()执行时,与这个连接相关的底层操作也会关闭(如文件描述符),一旦关闭,再对相关的文件对象操作都会失败。

8.bind(address):

      将socket对象绑定到一个地址,但这个地址必须是没有被占用的,否则会连接失败。
这里的address一般是一个ip,port对。

9.listen([backlog]) :

      监听,使得服务器能接收服务端连接,如果backlog指定了(最少是0,如果比0小,系统默认改成0),限制可以连接的数量,如果没有指定,将指派一个默认的合理值。

python系列:socket库详解相关推荐

  1. python turtle循环图案-Python绘图Turtle库详解

    Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行 ...

  2. 【python】python爬虫requests库详解

    1.安装:pip install requests 简介:Requests是一个优雅而简单的Python HTTP库,与之前的urllibPython的标准库相比,Requests的使用方式非常的简单 ...

  3. Python安装MySQL库详解(解决Microsoft Visual C++ 9.0 is required )

    前面我们介绍的Python网络爬虫通常将抓取的数据存储至TXT或CSV文件,而当数据量增加之时,就需要将其存储至本地数据库了.Python访问数据库需要对应的接口程序,我们可以把接口程序理解为Pyth ...

  4. 【python】标准库详解

    注:最后有面试挑战,看看自己掌握了吗 文章目录 Standard Library简介 python内置对象 如何安装发布第三方模块 10最好用的模块汇总 包的本质 datetime模块 案例 Math ...

  5. python中gensim库详解

    一.gensim介绍 gensim是一款强大的自然语言处理工具,里面包括N多常见模型: - 基本的语料处理工具 - LSI - LDA - HDP - DTM - DIM - TF-IDF - wor ...

  6. Python绘图Turtle库详解情人节玫瑰花

    https://blog.csdn.net/zengxiantao1994/article/details/76588580 (https://mp.weixin.qq.com/s/80bGWMuzg ...

  7. python:基础知识详解

    一.基本元素 变量 变量赋值: a="hello world" 变量命名: • 字母:a-z, A-Z, 其他语言的字母符号 • 数字:0-9 (不可以出现在首字符) • 下划线: ...

  8. Python Urllib库详解

    Urllib库详解 什么是Urllib? Python内置的HTTP请求库 urllib.request 请求模块 urllib.error 异常处理模块 urllib.parse url解析模块 u ...

  9. python如何设置画布开始位置_Python绘图篇——Turtle库详解(一)

    交流学习python编程技术及行业动态,点击上方"蓝字"关注我们 Python绘图篇--Turtle库详解(一) 写在前面 ↓ 注:本教程基于64位windows系统(鼠标右键点击 ...

最新文章

  1. 亚洲与非洲:中国支付巨头的海外进击
  2. 一个时间日期转换格式的小功能(Oracle)
  3. linux 下 安装 matplotlib 版本依赖(旧版本)
  4. ajax点击事件无法触发,解决jQuery Ajax动态新增节点无法触发点击事件的问题_婳祎_前端开发者...
  5. 揭晓远程证明架构EAA:机密容器安全部署的最后一环 | 龙蜥技术
  6. 工程验收工作笔记001---系统等保级别_系统等级保护
  7. 计算机tpu定义,tpu材料
  8. URAL 2037 Richness of binary words
  9. 华为云认证体系介绍,认证的必要性
  10. 几款任意波形发生卡推荐
  11. java分页用到的控件,laypage分页控件使用方法
  12. iOS之HomeKit
  13. 图的表示(无权图和有权图)
  14. 线性代数之——消元法
  15. ENDNOTE使用方法(转发)
  16. 苹果手机更改照片大小kb_iphone6如何用手机查看图片分辨率 大小等属性
  17. virtual box虚拟机软件如何加快虚拟系统中的网速?
  18. 雅虎地图与谷歌地图坐标_为什么Google会击败Yahoo! 在网络托管大战中
  19. 我理解的伽马校正(Gamma Correction)
  20. 博弈论入门(论和威佐夫、巴什、尼姆打牌被吊打是什么感受(╥﹏╥)

热门文章

  1. Linux学习笔记(3)基本命令Part3——用户和组管理
  2. 【五】、Consul注册中心
  3. 数据管理独角兽Cohesity已秘交招股书,它是否值100亿美元?
  4. 转:MFC之COleVariant
  5. 为什么说”人生苦短,我用python解析“
  6. 传统语音增强——基本的维纳滤波语音降噪算法
  7. 阿里巴巴笔试题,翻转数字
  8. Tcl -- set
  9. ubuntu多个系统之间文件局域网共享
  10. 基于Piecewise混沌映射的麻雀搜索算法-附代码