Rumah pembangunan bahagian belakang Tutorial Python python基础知识之二:网络通信数据传输

python基础知识之二:网络通信数据传输

Feb 20, 2021 am 09:43 AM
python Pemindahan data

python实现网络通信数据传输(基础知识(二))

python基础知识之二:网络通信数据传输

免费学习推荐:python视频教程

  • 前言
  • 基础知识学习
    • 一、OSI 模型
    • 二、TCP、IP协议族:
    • 三、python中字符串的编码方式
  • 结束语

前言

第二弹来了!今天还是上些基础知识吧,扎实的基础才是深入学习的不二法门!!!

基础知识学习

一、OSI 模型

  • OSI 模型把网络通信的工作分为 7 层,从下到上分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层
    OSI 只是存在于概念和理论上的一种模型,它的缺点是分层太多,增加了网络工作的复杂性,所以没有大规模应用。后来人们对 OSI 进行了简化,合并了一些层,最终只保留了 4 层,从下到上分别是接口层、网络层、传输层和应用层,这就是大名鼎鼎的 TCP/IP 模型
  • 这个网络模型究竟是干什么呢?简而言之就是进行数据封装的。
  • 数据封装原理: 我们平常使用的程序(软件)一般都是通过应用层来访问网络的,程序产生的数据会一层一层地往下传输,直到最后的网络接口层,就通过网线发送到互联网上去了。数据每往下走一层,就会被这一层的协议增加一层包装,等到发送到互联网上时,已经比原始数据多了四层包装。整个数据封装的过程就像俄罗斯套娃。当另一台计算机接收到数据包时,会从网络接口层再一层一层往上传输,每传输一层就拆开一层包装,直到最后的应用层,就得到了最原始的数据,这才是程序要使用的数据。给数据加包装的过程,实际上就是在数据的头部增加一个标志(一个数据块),表示数据经过了这一层,我已经处理过了。给数据拆包装的过程正好相反,就是去掉数据头部的标志,让它逐渐现出原形。
    在这里插入图片描述
    (OSI 七层网络模型和 TCP/IP 四层网络模型的对比)
  • 两台计算机进行通信时,必须遵守以下原则
    (1) 必须是同一层次进行通信,比如,A 计算机的应用层和 B 计算机的传输层就不能通信,因为它们不在一个层次,数据的拆包会遇到问题。
    (2) 每一层的功能都必须相同,也就是拥有完全相同的网络模型。如果网络模型都不同,那不就乱套了,谁都不认识谁。
    数据只能逐层传输,不能跃层。
    (3) 每一层可以使用下层提供的服务,并向上层提供服务

二、TCP、IP协议族:

常用到的 socket 编程是基于 TCP 和 UDP 协议的,它们的层级关系如下图所示:
在这里插入图片描述

三、python中字符串的编码方式

python中要把字符串的编码方式转换为utf-8的形式!

  • 同样一个数,你可以选不同的方式来表示它,选用什么方案,就是对 Unicode 的一种编码方法(utf-8是Unicode编码方式的一种具体实现)。
  • Python 内部使用 Unicode 来表示字符串,所以想要print什么汉字(英文字母和数字的Unicode和utf-8的编码是一样的)的就要保证是Unicode的编码方式,如果是“utf-8”的编码方式(输出就是一堆二进制代码,一个汉字的utf-8编码为三个字节,也就是三段二进制表示,如下图),可以用.decode(“utf-8”)来解码。而在保存到硬盘或者发送到网上(用到socket等和通信有关的),需要转成 UTF-8。
    在这里插入图片描述
    (utf-8编码在python里的输出结果)
  • 为什么在内部不继续使用 UTF-8,那样不就不用转换了吗?这个就涉及到 UTF-8 的一个缺点:计算字符串长度和查找子字符串非常没效率。在使用 UCS2 的时候,要想知道这个字符串有多长,只要看一下它占了几个字节,然后除个 2 就可以了,而 UTF-8 的话,就需要一个字符一个字符的数出来。在做子字符串搜索的时候,因为不知道下一个字符占几个字节,所以那些高效的搜索算法也都不灵了。

结束语

下次我会拿出一些简单的例子,以帮助大家理解和实际操作。最后希望大家看完,顺手点一个小小的赞,给点鼓励吧,一篇写出来两个多小时过去了,没有任何利益的行为,只是为了知识共享,共同学习,一起成长!!!(偷偷说,我看完别人的文章也不点赞,这不是好习惯,我马上改的,呜呜呜)

相关免费学习推荐:python教程(视频)

Atas ialah kandungan terperinci python基础知识之二:网络通信数据传输. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah fungsi jumlah bahasa C? Apakah fungsi jumlah bahasa C? Apr 03, 2025 pm 02:21 PM

Tiada fungsi jumlah terbina dalam dalam bahasa C, jadi ia perlu ditulis sendiri. Jumlah boleh dicapai dengan melintasi unsur -unsur array dan terkumpul: Versi gelung: SUM dikira menggunakan panjang gelung dan panjang. Versi Pointer: Gunakan petunjuk untuk menunjuk kepada unsur-unsur array, dan penjumlahan yang cekap dicapai melalui penunjuk diri sendiri. Secara dinamik memperuntukkan versi Array: Perlawanan secara dinamik dan uruskan memori sendiri, memastikan memori yang diperuntukkan dibebaskan untuk mengelakkan kebocoran ingatan.

Siapa yang dibayar lebih banyak Python atau JavaScript? Siapa yang dibayar lebih banyak Python atau JavaScript? Apr 04, 2025 am 12:09 AM

Tidak ada gaji mutlak untuk pemaju Python dan JavaScript, bergantung kepada kemahiran dan keperluan industri. 1. Python boleh dibayar lebih banyak dalam sains data dan pembelajaran mesin. 2. JavaScript mempunyai permintaan yang besar dalam perkembangan depan dan stack penuh, dan gajinya juga cukup besar. 3. Faktor mempengaruhi termasuk pengalaman, lokasi geografi, saiz syarikat dan kemahiran khusus.

Adakah distinctidistinguish berkaitan? Adakah distinctidistinguish berkaitan? Apr 03, 2025 pm 10:30 PM

Walaupun berbeza dan berbeza berkaitan dengan perbezaan, ia digunakan secara berbeza: berbeza (kata sifat) menggambarkan keunikan perkara itu sendiri dan digunakan untuk menekankan perbezaan antara perkara; Berbeza (kata kerja) mewakili tingkah laku atau keupayaan perbezaan, dan digunakan untuk menggambarkan proses diskriminasi. Dalam pengaturcaraan, berbeza sering digunakan untuk mewakili keunikan unsur -unsur dalam koleksi, seperti operasi deduplikasi; Berbeza dicerminkan dalam reka bentuk algoritma atau fungsi, seperti membezakan ganjil dan bahkan nombor. Apabila mengoptimumkan, operasi yang berbeza harus memilih algoritma dan struktur data yang sesuai, sementara operasi yang berbeza harus mengoptimumkan perbezaan antara kecekapan logik dan memberi perhatian untuk menulis kod yang jelas dan mudah dibaca.

Bagaimana memahami! X dalam c? Bagaimana memahami! X dalam c? Apr 03, 2025 pm 02:33 PM

! X Memahami! X adalah bukan operator logik dalam bahasa C. Ia booleans nilai x, iaitu, perubahan benar kepada perubahan palsu, palsu kepada benar. Tetapi sedar bahawa kebenaran dan kepalsuan dalam C diwakili oleh nilai berangka dan bukannya jenis Boolean, bukan sifar dianggap sebagai benar, dan hanya 0 dianggap sebagai palsu. Oleh itu ,! X memperkatakan nombor negatif sama seperti nombor positif dan dianggap benar.

Apakah jumlah maksud dalam bahasa C? Apakah jumlah maksud dalam bahasa C? Apr 03, 2025 pm 02:36 PM

Tiada fungsi jumlah terbina dalam dalam C untuk jumlah, tetapi ia boleh dilaksanakan dengan: menggunakan gelung untuk mengumpul unsur-unsur satu demi satu; menggunakan penunjuk untuk mengakses dan mengumpul unsur -unsur satu demi satu; Untuk jumlah data yang besar, pertimbangkan pengiraan selari.

Adakah pengeluaran halaman H5 memerlukan penyelenggaraan berterusan? Adakah pengeluaran halaman H5 memerlukan penyelenggaraan berterusan? Apr 05, 2025 pm 11:27 PM

Halaman H5 perlu dikekalkan secara berterusan, kerana faktor -faktor seperti kelemahan kod, keserasian pelayar, pengoptimuman prestasi, kemas kini keselamatan dan peningkatan pengalaman pengguna. Kaedah penyelenggaraan yang berkesan termasuk mewujudkan sistem ujian lengkap, menggunakan alat kawalan versi, kerap memantau prestasi halaman, mengumpul maklum balas pengguna dan merumuskan pelan penyelenggaraan.

Bagaimana untuk mendapatkan data aplikasi masa nyata dan data penonton di halaman kerja 58.com? Bagaimana untuk mendapatkan data aplikasi masa nyata dan data penonton di halaman kerja 58.com? Apr 05, 2025 am 08:06 AM

Bagaimana untuk mendapatkan data dinamik 58.com halaman kerja semasa merangkak? Semasa merangkak halaman kerja 58.com menggunakan alat crawler, anda mungkin menghadapi ...

Salin dan tampal kod cinta salinan dan tampal kod cinta secara percuma Salin dan tampal kod cinta salinan dan tampal kod cinta secara percuma Apr 04, 2025 am 06:48 AM

Menyalin dan menampal kod itu tidak mustahil, tetapi ia harus dirawat dengan berhati -hati. Ketergantungan seperti persekitaran, perpustakaan, versi, dan lain -lain dalam kod mungkin tidak sepadan dengan projek semasa, mengakibatkan kesilapan atau hasil yang tidak dapat diramalkan. Pastikan untuk memastikan konteksnya konsisten, termasuk laluan fail, perpustakaan bergantung, dan versi Python. Di samping itu, apabila menyalin dan menampal kod untuk perpustakaan tertentu, anda mungkin perlu memasang perpustakaan dan kebergantungannya. Kesalahan biasa termasuk kesilapan laluan, konflik versi, dan gaya kod yang tidak konsisten. Pengoptimuman prestasi perlu direka semula atau direkodkan mengikut tujuan asal dan kekangan Kod. Adalah penting untuk memahami dan debug kod yang disalin, dan jangan menyalin dan tampal secara membuta tuli.

See all articles