Python网络编程网络编程教程

网络编程的本质是两个设备之间的数据交换,当然,在计算机网络中,设备主要指计算机。数据传递本身没有多大的难度,不就是把一个设备中的数据发送给两外一个设备,然后接受另外一个设备反馈的数据。

现在的网络编程基本上都是基于请求/响应方式的,也就是一个设备发送请求数据给另外一个,然后接收另一个设备的反馈。

在网络编程中,发起连接程序,也就是发送第一次请求的程序,被称作客户端(Client),等待其他程序连接的程序被称作服务器(Server)。客户端程序可以在需要的时候启动,而服务器为了能够时刻相应连接,则需要一直启动。

连接一旦建立以后,就客户端和服务器端就可以进行数据传递了,而且两者的身份是等价的。

什么是端口

为了在一台设备上可以运行多个程序,人为的设计了端口(Port)的概念,类似的例子是公司内部的分机号码。

规定一个设备有 216 个,也就是 65536 个端口,每个端口对应一个唯一的程序。每个网络程序,无论是客户端还是服务器端,都对应一个或多个特定的端口号。由于 0-1024 之间多被操作系统占用,所以实际编程时一般采用1024 以后的端口号。

使用端口号,可以找到一台设备上唯一的一个程序。所以如果需要和某台计算机建立连接的话,只需要知道IP地址或域名即可,但是如果想和该台计算机上的某个程序交换数据的话,还必须知道该程序使用的端口号。

数据传输方式

在网络上,不管是有线传输还是无线传输,数据传输的方式有两种:

l TCP(Transfer Control Protocol)

传输控制协议方式,该传输方式是一种稳定可靠的传送方式,类似于显示中的打电话。只需要建立一次连接,就可以多次传输数据。就像电话只需要拨一次号,就可以实现一直通话一样,如果你说的话不清楚,对方会要求你重复,保证传输的数据可靠。

使用该种方式的优点是稳定可靠,缺点是建立连接和维持连接的代价高,传输速度不快。

l UDP(User Datagram Protocol)

用户数据报协议方式,该传输方式不建立稳定的连接,类似于发短信息。每次发送数据都直接发送。发送多条短信,就需要多次输入对方的号码。该传输方式不可靠,数据有可能收不到,系统只保证尽力发送。

使用该种方式的优点是开销小,传输速度快,缺点是数据有可能会丢失。在实际的网络编程中,大家可以根据需要选择任何一种传输方式,或组合使用这两种方式实现数据的传递。

协议的概念

协议(Protocol)是网络编程中一个非常重要的概念,指的是传输数据的格式。因为大家在网络中需要传输各种各样的信息,在程序中获得到的都是一组数值,如何阅读这些数值呢,就需要提前规定好这组数据的格式。

在客户端按照该格式生成发送数据,服务器端按照该格式阅读该数据,然后在按照一定的格式生成数据反馈给客户端,客户端再按照该格式阅读数据。现实中类似的例子就是电报编码,每个数字都是用特定的数据表达。

一般程序的协议都分成客户端发送的数据格式,以及服务器端反馈的数据格式,客户端和服务器端都遵循该格式生成或处理数据,实现两者之间的复杂数据交换。

网络编程分类

网络编程有两种模式,即 TCP/UDP Socket 编程和 b/s 结构的 HTTP 编程。

TCP Socker 编程,是网络编程的主流。之所以叫 TCP Socket 编程,是因为底层是基于 Tcp/ip 协议的。

b/s 结构的 http 编程,我们使用浏览器去访问服务器时,使用的就是 http 协议,而 http 协议底层是用 tcp socket 实现的。

Python网络编程总结

网络编程就是使用 IP 地址,或域名,和端口连接到另一台计算机上对应的程序,按照规定的协议(数据格式)来交换数据,实际编程中建立连接和发送、接收数据在语言级已经实现,做的更多的工作是设计协议,以及编写生成和解析数据的代码罢了,然后把数据转换成逻辑的结构显示或控制逻辑即可。

python 网络编程是什么_什么是网络编程-Python 网络编程-嗨客网相关推荐

  1. 在python中的转义字符是什么_Python转义字符-Python转义字符表-Python转义字符的作用-在Python中如何输出转义字符-嗨客网...

    Python转义字符教程 在编程中有一些字符是打不出来的,比如换行,提示音,下一个制表位等等,于是程序语言的开发者就设计了转义序列(escape sequence)这种东西用来表达这些字符. 所谓转义 ...

  2. python islower函数_python字符串是否是小写-python 字符串小写-python islower函数-python islower函数未定义-嗨客网...

    Python字符串是否是小写教程 在开发过程中,有时候我们需要判断一个 Python islower()函数详解 语法 str.islower() -> bool 参数 参数 描述 str 表示 ...

  3. python中用什么函数去掉空格_python去除字符串空格-python删除空格-python去掉空白字符-python strip函数-python trim函数-嗨客网...

    Python去除字符串空格教程 在开发过程中,有时候我们需要去除一个 Python strip()函数详解 语法 S.strip([chars]) -> str 参数 参数 描述 S 表示原字符 ...

  4. python if elif用法_Python elif 条件判断-python if elif-python else if-Python elif使用-嗨客网...

    Python elif条件判断教程 在 elif elif 语句只能写在 if 语句的同级代码的后面,且 elif 语句可以写任意多个. Python elif语句详解 语法 if condition ...

  5. python中isdigit函数什么意思_python字符串是否为数字类型-python isdigit函数-isdigit函数 python-python isdigit函数使用-嗨客网...

    Python字符串是否是数字教程 在开发过程中,有时候我们需要判断一个 Python isdigit()函数详解 语法 str.isdigit() -> bool 参数 参数 描述 str 表示 ...

  6. python 字符串首字母,Python 字符串首字母大写-Python设置字符串首字母大写-python title()作用-python title函数-嗨客网...

    Python字符串首字母大写 Python字符串首字母大写教程 在开发过程中,很多时候我们需要将一个 Python title()函数详解 语法 S.title() -> str 参数 参数 描 ...

  7. python网络编程好学吗_年薪30万+的python编程难不难?好学吗?

    首先先了解下派森?什么是Python? python翻译成中文就是蟒;蚺蛇的意思.在计算机专业里面Python是一门课程,专门学习计算机编程的课程,是一种跨平台的计算机程序设计语言.一种高级,热门的编 ...

  8. python对建筑设计的帮助_建筑师为什么要会python编程?

    作者: 马海东 时间: 20203.19 数字时代建筑师面临的问题 我们生存的这个时代是一个数字化的时代, 建筑师可以通过使用一系列与建筑设计类相关的软件工具,把他们的设计从"概念变成图纸& ...

  9. python编程开发电子书_最经典25本Python编程开发电子书精粹

    Python开发者的哲学是"用一种方法,最好是只有一种方法来做一件事".在设计Python语言时,如果面临多种选择,Python开发者一般会拒绝花俏的语法,而选择明确的没有或者很少 ...

最新文章

  1. angular 触发 enter事件
  2. 禁止微信内置浏览器调整字体大小
  3. 腾讯测试鸿蒙系统,爆料:荣耀 30 Pro已开始测试华为鸿蒙系统
  4. day26(模块 logging 高级用法、collection、random)
  5. Linux引出环境变量的关键字,学习记录008-linux常用命令/设置系统and用户环境变量two(示例代码)...
  6. 152. 乘积最大子序列
  7. Java大厂面试题:从 JVM 角度说进程和线程之间的关系
  8. 豆瓣关于计算机视觉的书评及介绍
  9. 中国区块链专利数量全球第一 BAT专利数稳居世界20强
  10. bochs镜像java模拟器_bochs WIN7 IMG镜像文件
  11. 构建您的第一个Web爬网程序,第3部分
  12. Lacuncher3---修改文件夹图标和修改桌面布置
  13. MySQL之MHA高可用配置及故障切换实例
  14. 南京邮电大学壁纸计算机院,立夏 | 一大波夏日壁纸放送
  15. websocket重连机制
  16. 斯泰因梅茨-电路向量法的创始人
  17. 计算机的桌面窗户是什么情况,电脑桌面悬浮窗记事本软件怎么添加?适合桌面显示的便签软件...
  18. 高等数学:第十二章 微分方程(3)高阶线性微分方程、二阶常系数齐次线性微分方程
  19. 在水果检测中选择多光谱相机还是高光谱相机?
  20. linux内存故障排查

热门文章

  1. UI设计好学吗?UI设计难不难?
  2. 人际关系不仅要“存”,更要“激活”!
  3. 电子零售商进军百货业务 棘手的供应链(转)
  4. gRPC教程 — grpc-gateway
  5. 计算机病毒作文300,我vs电脑的作文300字
  6. 控制QTextEdit中字体颜色
  7. AI正在模仿人类大脑!2021年10篇顶会论文:大脑也在「无监督」学习
  8. Spring Security 入门 Remember-Me 记住我功能
  9. 用友U8如何调整凭证打印模板
  10. 表白php制作教程视频,制作表白视频的软件 怎么制作出好看的表白小视频