备案 控制台
开发者社区 开发与运维 文章 正文

Python3网络编程——Socket原理简介

本文涉及的产品
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
数据传输服务 DTS,数据同步 1个月
简介:

一、Python网络编程——客户端/服务器架构

1、服务器:服务器就是一系列硬件和软件,为一个或多个客户端提供所需要的服务。存在的目的就是等待客户端的请求,并响应他它们,然后等待更多请求。

2、客户端:客户端因特定的请求联系服务器,并发送必要的数据,然后等待服务器的回应,即最后完成请求或给出故障的原因。

3、工作过程图示:    

     211656_DUjC_3821557.png

4、数据传输模式

     网络编程一般有两种数据传输模式:即两种协议  TCP  和  UDP  

     4.1、TCP方式的特点:

            (1)校验码(2)接收方反馈(3)信息包附带序号

     4.2、UDP方式的特点:

             (1)不建立连接:不需要花费时间建立连接和关闭连接

             (2)数据传输快:偶尔会丢失一两个消息

             (3)限制一个消息包不超过 64KB 的数据

     两种协议的对比:UDP 不建立连接,只保证数据的完整性,数据传输快,但是不保证数据真的被接收到,也不保证数据仅接收一次,同时也不保证数据的顺序。

 

二、Python网络编程模块——套接字 Socket 模块

1、创建套接字     

     语法格式为     sock = socket.socket(socket_family,socket_type,property=0)

     其中    socket_family 指定是 socket.AF_INET     地址类型IPV4或IPV6     默认为 IPV4  

               socket_type 指的是 socket.SOCK_STREAM 或 socket.SOCK_DGRAM   仅可用于Unix系统通信

               property=0 该参数默认为0,通常省略不写

2、创建 TCP 套接字

     t = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

3、创建 UDP 套接字

     u = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

 

三、TCP模式——服务器 server——套接字对象的方法

1、s.bind(address):将地址(服务端IP地址、端口)绑定到套接字上

     如果IP地址为 0.0.0.0 代表本机的任意一个IP           端口  0--1024 为系统保留

    address 必须是元组    即address = ('192.168.1.188',888)

    1.1、绑定的两种写法

           ① s.bind(('192.168.1.188',888))

           ② address = ('192.168.1.188',888)

               s.bind(address)

2、s.listen(backlog)       设置并启动TCP监听,其中 backlog 代表可以同时接受多少个socket连接

3、s.accept()     被动接受TCP客户端连接,一直等待直到连接到达。

 

四、TCP模式——客户端 client——套接字对象的方法

1、主动发起TCP服务器连接    c.connect()

2、异常时,返回错误码     c.connect_ex()

 

五、TCP模式——通用(适用于:服务端/客户端)——套接字对象的方法

1、 发送数据

      发送TCP消息(可能未将指定内容全部发送过去)   s.send()

      发送完整的TCP消息(推荐使用)    s.sendall()

2、接收 TCP 数据  s.recv(bufsize)

     bufsize 指定最多接收的数据量,可以使用1024   2048等

     如果不知道接收的数据量有多少,一般通过循环实现。

3、关闭套接字     s.close()

4、当前套接字地址   s.getsocketname()

5、设置套接字的阻塞或者非阻塞模式      s.setblocking()

6、设置阻塞套接字操作的超时时间         s.settimeout(timeout)   timeout为float类型,单位为秒

7、获取阻塞套接字操作的超时时间         s.gettimeout(timeout)   timeout为float类型,单位为秒

    

六、UDP模式

1、创建 UDP 套接字

     u = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

2、接收 UDP 消息     s.recvfrom()

3、发送 UDP 消息     s.sendto()

相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
初雪之路
目录
相关文章
木易巷
|
5天前
|
网络协议 Linux Python
Python进阶---网络编程
Python进阶---网络编程
木易巷
21 2
冷冻工厂
|
11天前
|
存储 前端开发 机器人
Python网络数据抓取(6):Scrapy 实战
Python网络数据抓取(6):Scrapy 实战
冷冻工厂
28 2
Echo_Wish
|
11天前
|
机器学习/深度学习 自然语言处理 PyTorch
使用Python实现循环神经网络(RNN)的博客教程
使用Python实现循环神经网络(RNN)的博客教程
Echo_Wish
40 1
蓝易云
|
5天前
|
网络协议 Python
在python中利用TCP协议编写简单网络通信程序,要求服务器端和客户端进行信息互传。 - 蓝易云
在这个示例中,服务器端创建一个socket并监听本地的12345端口。当客户端连接后,服务器发送一条欢迎消息,然后关闭连接。客户端创建一个socket,连接到服务器,接收消息,然后关闭连接。
蓝易云
59 0
冷冻工厂
|
6天前
|
Web App开发 负载均衡 前端开发
Python网络数据抓取(7):Selenium 模拟
Python网络数据抓取(7):Selenium 模拟
冷冻工厂
26 5
东方睿赢
|
8天前
|
网络协议 Python
Python 网络编程实战:构建高效的网络应用
【5月更文挑战第18天】Python在数字化时代成为构建网络应用的热门语言,因其简洁的语法和强大功能。本文介绍了网络编程基础知识,包括TCP和UDP套接字,强调异步编程、数据压缩和连接池的关键作用。提供了一个简单的TCP服务器和客户端代码示例,并提及优化与改进方向,鼓励读者通过实践提升网络应用性能。
东方睿赢
26 6
东方睿赢
|
8天前
|
网络协议 网络架构 Python
Python 网络编程基础:套接字(Sockets)入门与实践
【5月更文挑战第18天】Python网络编程中的套接字是程序间通信的基础,分为TCP和UDP。TCP套接字涉及创建服务器套接字、绑定地址和端口、监听、接受连接及数据交换。UDP套接字则无连接状态。示例展示了TCP服务器和客户端如何使用套接字通信。注意选择唯一地址和端口,处理异常以确保健壮性。学习套接字可为构建网络应用打下基础。
东方睿赢
22 7
游客762btuqu5wybw666
|
10天前
|
监控 调度 开发者
Python 中的异步编程:理解 asyncio 库的基本原理与应用
本文将深入探讨 Python 中的异步编程技术,重点介绍 asyncio 库的基本原理与应用。通过解释事件循环、协程和 Future 对象的概念,读者将能够理解异步编程的工作原理,并学会如何利用 asyncio 库提高程序的性能和效率。本文还将通过实际示例演示如何使用 asyncio 库来处理 I/O 密集型任务和 CPU 密集型任务,以及如何避免常见的陷阱和错误。
游客762btuqu5wybw666
21 0
游客762btuqu5wybw666
|
10天前
|
调度 UED Python
Python 中的异步编程:理解 asyncio 库的基本原理与应用
本文探讨了 Python 中的异步编程,重点介绍了 asyncio 库的基本原理与应用。通过分析事件循环、协程以及异步/await 关键字的作用机制,读者将能够深入理解异步编程的工作方式,并学会如何利用 asyncio 库构建高效的异步应用程序。同时,本文还介绍了一些实际案例,帮助读者更好地掌握 asyncio 库的实际应用。
游客762btuqu5wybw666
18 0
dulu~dulu
|
11天前
|
网络协议 Unix Python
Python编程-----网络通信
Python编程-----网络通信
dulu~dulu
10 1

热门文章

最新文章

  • 1
    人工智能:原理、应用与Python代码实现
  • 2
    Python小项目:利用tkinter开发测手速小游戏
  • 3
    人工智能:原理、应用与Python代码示例
  • 4
    流畅的 Python 第二版(GPT 重译)(一)(1)
  • 5
    流畅的 Python 第二版(GPT 重译)(十一)(1)
  • 6
    Python与NoSQL数据库(MongoDB、Redis等)面试问答
  • 7
    流畅的 Python 第二版(GPT 重译)(九)(2)
  • 8
    Python 多线程编程实战:threading 模块的最佳实践
  • 9
    Python计算股票投资组合的风险价值(VaR)
  • 10
    Python 读写 Excel 文件
  • 1
    Qt 5.14.2 网络编程揭秘:构建高效HTTP客户端与文件下载器
    105
  • 2
    Python网络编程实现TCP和UDP连接
    35
  • 3
    Linux 网络编程从入门到进阶 学习指南
    83
  • 4
    Go语言网络编程:HTTP客户端开发实战
    27
  • 5
    Go语言网络编程:深入探索HTTP服务器开发
    26
  • 6
    Go语言网络编程基础:构建高效、可靠的网络应用
    46
  • 7
    在Python中进行TCP/IP网络编程
    40
  • 8
    [Java]Socket套接字(网络编程入门)
    41
  • 9
    网络编程【TCP单向通信、TCP双向通信、一对多应用、一对多聊天服务器】(二)-全面详解(学习总结---从入门到深化)
    68
  • 10
    Python网络编程与Socket通信:连接世界的无限可能
    28
  • 相关课程

    更多
  • Python语言基础 - 列表、元组、字典、集合
  • Python Web 框架 Flask 快速入门
  • Python Web 框架 Django 快速入门
  • 企业上云攻略-阿里云网络产品应用系列教程
  • Linux网络进阶 - TCP/IP协议及OSI七层模型
  • 网络管理者必知-2分钟了解新出台的《网络安全法》
  • 相关电子书

    更多
  • 可编程网络视角的网络创新研究
  • 可编程网络和SDN3.0
  • 开放促进创新:构建开放网络生态
  • 相关实验场景

    更多
  • 用Python画圣诞树
  • 使用Python完成RDS数据开发及分析
  • Python选择及循环结构
  • 云端Python及基本操作
  • 使用Java面向对象编写网络通信程序应用
  • Python网络通信程序典型应用
  • 下一篇
    2024年阿里云免费云服务器及学生云服务器申请教程参考

    聚圣源少女以金起名大全西餐加盟店排行榜游乐公司起名大全装修起个什么名字漫画英雄终极联盟2企业起名打分商贸公司起名字大全免费三个字常委和委员的区别信托投资起名大全男孩 高分战狼2资源门头起名字测试测试打分结果鲁班四杰之伏龙海眼马氏女孩名字大全起名gmail企业邮箱铸造公司起名用字大全好的物业公司起名字米乐星诗经楚辞起名起名按笔画装潢公司琵琶一词来源于什么室内设计起名三缄其口巫妖王的崛起美食供应商免费的起名软件有几个半条命2下载门头起名字测试打分表监狱戦舰淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

    聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化