网易首页 > 网易号 > 正文 申请入驻

Python之socket编程(53)

0
分享至


小朋友们好,大朋友们好!

我是猫妹,一名爱上Python编程的小学生。

和猫妹学Python,一起趣味学编程。

今日主题

今天的内容比较多哦,主要是网络编程的一些入门知识。

这些知识在互联网发展过程中很重要,猫妹抛砖引玉。

OSI七层模型和TCP/IP四层模型

IP地址和端口

TCP/UDP

socket

Python实现TCP服务器客户端

Python实现UDP服务器客户端

OSI七层模型和TCP/IP四层模型

OSI七层模型和TCP/IP四层模型是互联网通信的基石,我们之所以可以愉快地上网,底层就是它的功劳。

它们在底层默默工作,我们仿佛感觉不到它的存在。其实底层的设计和实现汇集了众多人类的智慧。

OSI七层模型和TCP/IP四层模型都是网络通信中常用的分层架构。

OSI七层模型更加详细,涵盖了更多的功能和细节;而TCP/IP四层模型则更加简洁明了,便于理解和应用。

下面分别对它们进行简要介绍:

OSI七层模型:

OSI(Open Systems Interconnection)是一种定义了网络通信协议栈的国际标准。它将网络通信分为七个层次,每一层都有特定的功能和任务。从底层到顶层分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。

* 物理层:负责在物理媒介上传输比特流,主要涉及硬件接口和信号传输。

* 数据链路层:负责在相邻节点之间建立可靠的数据传输通路,实现数据的分组和错误检测。

* 网络层:负责将数据包从源节点发送到目的节点,实现端到端的连接。

* 传输层:负责控制和管理数据传输过程中的流量控制、错误恢复和数据重组等。

* 会话层:负责建立、管理和终止应用程序之间的会话。

* 表示层:负责数据的格式转换、加密和解密等。

* 应用层:负责为用户提供各种网络应用服务,如电子邮件、文件传输、远程登录等。

TCP/IP四层模型:

TCP/IP(Transmission Control Protocol/Internet Protocol)是一种广泛应用于互联网的分层架构。它将网络通信分为四个层次,每一层都有特定的功能和任务。从底层到顶层分别是:网络接口层、网际层、传输层和应用层。

* 网络接口层:负责处理数据包的物理介质(如以太网、Wi-Fi等)以及地址和路由选择等问题。

* 网际层:负责在不同网络之间建立逻辑连接,实现端到端的数据传输。

* 传输层:负责控制和管理数据传输过程中的流量控制、错误恢复和数据重组等。

* 应用层:负责为用户提供各种网络应用服务,如电子邮件、文件传输、远程登录等。

IP地址和端口

我们要上网,离不开两个东西,一个是IP地址,一个是端口。

IP地址和端口是网络通信中两个重要的概念,它们共同用于在互联网上唯一标识一个设备或应用服务。

IP地址用于在数据包头中指明源设备的地址,而端口号则用于在网络上唯一标识一个应用服务。

IP地址唯一标识一台连接在互联网上的电脑。

IP(Internet Protocol)地址是一个32位的二进制数,用于在互联网上唯一标识一个设备。

IP地址分为IPv4和IPv6两种格式。

IPv4地址通常以点分十进制表示法(如192.0.2.1),而IPv6地址则采用冒号分隔的128位十六进制数(如2001:0db8:85a3:0000:0000:8a2e:0370:7334)。

IP地址用于在数据包头中指明源设备的地址,以便接收方能够将数据包正确地发送到目标设备。

有了IP地址还不够,一台电脑有许多应用程序,端口用于区分应用程序。

端口(Port)是网络通信中设备之间进行通信的逻辑接口。

取值0~65535,0~1023系统占用,其他端口应用程序随机分配。

每个应用程序都使用一个唯一的端口号来标识自己的通信服务。

常见的端口号有80(HTTP)、21(FTP)、25(SMTP)、3306(MySQL)等。

TCP和UDP

TCP和UDP位于TCP/IP四层模型中的传输层。

TCP(Transmission Control Protocol)特点:

可靠性高:TCP是一种面向连接的协议,它通过建立可靠的连接来保证数据传输的可靠性。当数据包在传输过程中丢失或损坏时,TCP会进行重传,直到数据被完全接收。

流控制:TCP使用滑动窗口机制来控制数据的发送速率,避免网络拥塞。发送方会根据接收方的缓冲情况动态调整发送速率。

有序性:TCP保证数据包的顺序性和完整性,确保接收方能够按照正确的顺序接收到数据。

适用场景:TCP适用于需要可靠数据传输的应用场景,如文件传输、电子邮件等。

UDP特点:

不可靠性高:UDP是一种无连接的协议,它不保证数据传输的可靠性。当数据包在传输过程中丢失或损坏时,UDP不会进行重传,而是直接丢弃。

快速性:UDP没有复杂的控制流程,因此具有较快的传输速度和较低的延迟。

无序性:UDP不保证数据包的顺序性和完整性,接收方可能收到乱序的数据包。

适用场景:UDP适用于对实时性要求较高、不需要可靠数据传输的应用场景,如视频流媒体、在线游戏等。

TCP就像打电话,对方必须在线才能通过。

UDP就像写信,写好直接发送就是了。

没有优劣,各有千秋。

socket

TCP/UDP是很复杂的,为了使应用开发更简单。

在应用层和TCP/UDP之间有一层,叫socket。

Socket(套接字)是计算机网络编程中的一种通信机制,用于实现不同计算机之间的数据传输。

简单来说,Socket就是一种用于建立网络连接的抽象接口,它允许程序员通过网络协议进行数据传输。

在网络编程中,Socket通常由两部分组成:客户端和服务器端。

客户端发送数据到服务器端,而服务器端接收并处理这些数据。

Socket通信可以基于TCP(传输控制协议)或UDP(用户数据报协议)两种不同的协议。

使用Socket进行网络编程需要以下步骤:

1. 创建Socket对象:首先需要创建一个Socket对象,指定要使用的协议类型。

2. 绑定Socket:将Socket与特定的IP地址和端口号绑定在一起,以便客户端能够找到服务器端。

3. 连接Socket:当客户端想要与服务器端通信时,需要建立连接。这可以通过调用Socket对象的connect()方法来实现。

4. 发送和接收数据:一旦连接建立成功,就可以使用Socket对象的send()和recv()方法来发送和接收数据。

5. 关闭Socket:当通信完成后,需要关闭Socket对象以释放资源。

总之,Socket是网络编程中非常重要的一个概念,它提供了一种通用的、跨平台的通信机制,使得程序员可以轻松地实现不同计算机之间的数据传输。

Python实现TCP服务器客户端

TCP客户端服务器交互流程图:

socket关键函数介绍:

函数

描述

socket()

获取socket类对象

bind((hostname, port))

在指定主机的端口绑定监听

listen()

在绑定端口上开启监听,参数表示最大等待建立连接的个数

accept()

等待客户端连接,连接后返回客户端地址

send(data)

发送数据,data 是二进制数据

recv(buffer)

表示接收数据, buffersize 是每次接收数据的长度

close()

关闭套接字连接

connect((hostname, port))

设置要连接的主机名称与端口号

TCP协议客户端服务器代码测试:

注:服务端可以持续监听连接,客户端下线,服务端自动断开连接。客户端再次上线,服务端建立连接。

Python实现UDP服务器客户端

UDP客户端服务器交互流程图:

客户端流程:

  1. 导入包socket
  2. 创建一个套接字
  3. 收发消息(优先发送)
  4. 关闭套接字

服务器流程:

  1. 导入包socket
  2. 创建一个套接字
  3. 绑定信息
  4. 收发消息(优先接收)
  5. 关闭套接字

UDP协议客户端服务器代码测试:

需要代码的小伙伴,可从和猫妹学Python,下图第一名平台的次条推文获取哦!

平台太多了,代码排版太耗时了。

好了,我们今天就学到这里吧!

如果遇到什么问题,咱们多多交流,共同解决。

我是猫妹,咱们下次见!

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
面具下的普京,20年来对乌克兰干了什么?

面具下的普京,20年来对乌克兰干了什么?

史政先锋
2024-06-13 15:31:40
出嫁前一天在全小区丢人

出嫁前一天在全小区丢人

悠闲葡萄
2024-06-09 09:57:44
6月16日赛程公布:中国女排冲4连胜,总决赛席位将确定,美日大战

6月16日赛程公布:中国女排冲4连胜,总决赛席位将确定,美日大战

草根体育
2024-06-16 00:09:44
1000个IQ!意大利高智商角球:短短5秒,3个人3脚1头,对手懵了!

1000个IQ!意大利高智商角球:短短5秒,3个人3脚1头,对手懵了!

风过乡
2024-06-16 06:24:44
笑麻了!女子网购裤子裆部现“镂空”设计,商家回应:新潮流!

笑麻了!女子网购裤子裆部现“镂空”设计,商家回应:新潮流!

咖啡店的老板娘
2024-06-14 19:35:03
6月15日俄乌最新:对等空袭

6月15日俄乌最新:对等空袭

西楼饮月
2024-06-15 16:47:22
教育部不批准福耀科技大学,却批准西湖大学,属实非常正确!

教育部不批准福耀科技大学,却批准西湖大学,属实非常正确!

咖啡店的老板娘
2024-06-13 21:17:16
21+20+10+8!21年前的今天:邓肯总决赛准四双带队夺冠!

21+20+10+8!21年前的今天:邓肯总决赛准四双带队夺冠!

直播吧
2024-06-16 10:29:16
老人存款最好的两种方法,内部人员透露,赶紧收藏起来

老人存款最好的两种方法,内部人员透露,赶紧收藏起来

户外钓鱼哥阿旱
2024-06-15 17:17:14
这一次恐无人担责!游客被瓦屋山落石砸中身亡后续:生前照片流出

这一次恐无人担责!游客被瓦屋山落石砸中身亡后续:生前照片流出

布拉旅游说
2024-06-14 23:48:40
过“紧日子”的地方政府,已经把手伸进老百姓的口袋里去了

过“紧日子”的地方政府,已经把手伸进老百姓的口袋里去了

浮事记
2024-06-03 11:48:21
身体被掏空!王思聪东京商场潇洒,四个美女作伴,各个是性感肉弹

身体被掏空!王思聪东京商场潇洒,四个美女作伴,各个是性感肉弹

八卦王者
2024-06-15 15:41:34
夏洛特是礼仪教科书,斥责手舞足蹈的路易,帮助父母管教弟弟

夏洛特是礼仪教科书,斥责手舞足蹈的路易,帮助父母管教弟弟

红袖说事
2024-06-16 07:35:54
路易小王子随风笛声起舞,姐姐夏洛特试图阻止,妈妈凯特笑而不语

路易小王子随风笛声起舞,姐姐夏洛特试图阻止,妈妈凯特笑而不语

译言
2024-06-15 20:26:17
董路:武磊射门进球转化率20%,高于萨拉赫&仅差哈兰德两个百分点

董路:武磊射门进球转化率20%,高于萨拉赫&仅差哈兰德两个百分点

直播吧
2024-06-15 21:21:04
关于死亡,这可能是一篇颠覆你认知的文章!

关于死亡,这可能是一篇颠覆你认知的文章!

尚曦读史
2024-04-05 10:52:47
毛主席的命令:除大将外,从上将到少校,明年和我一起横渡长江!

毛主席的命令:除大将外,从上将到少校,明年和我一起横渡长江!

陈冠任
2024-06-16 09:02:20
G7背书,再用瑞士峰会推高,之后F-16进入,反攻就开始了

G7背书,再用瑞士峰会推高,之后F-16进入,反攻就开始了

邵旭峰域
2024-06-15 11:59:20
才两年!国产手机使用韩国OLED面板的比例从77.9%暴跌至16%

才两年!国产手机使用韩国OLED面板的比例从77.9%暴跌至16%

最潮家居评
2024-06-16 05:27:40
鲁尼悼念凯文-坎贝尔:凯文去世令我非常悲痛,他给予我很多帮助

鲁尼悼念凯文-坎贝尔:凯文去世令我非常悲痛,他给予我很多帮助

直播吧
2024-06-15 19:55:40
2024-06-16 14:06:44
和猫妹学Python
和猫妹学Python
人生苦短,我用Python
79文章数 95关注度
往期回顾 全部

科技要闻

iPhone 16会杀死大模型APP吗?

头条要闻

上海一家三口出动去香港过周末 在高铁动卧睡一晚就到

头条要闻

上海一家三口出动去香港过周末 在高铁动卧睡一晚就到

体育要闻

没人永远年轻 但青春如此无敌还是离谱了些

娱乐要闻

上影节红毯:倪妮好松弛,娜扎吸睛

财经要闻

打断妻子多根肋骨 上市公司创始人被公诉

汽车要闻

售17.68万-21.68万元 极狐阿尔法S5正式上市

态度原创

数码
教育
亲子
家居
旅游

数码要闻

优派 XG323-4K-OLED-2 显示器预告:原生 10bit、全功能 Type-C

教育要闻

视频 | 山东夏季高考试卷总数404.2万份,记者带您探访评卷现场

亲子要闻

陪宝宝看鲨鱼,跟海底动物们来个亲密接触,就差美人鱼了

家居要闻

空谷来音 朴素留白的侘寂之美

旅游要闻

@毕业生,江苏这些景区可享免票或优惠

无障碍浏览 进入关怀版