python 网络编程是什么_什么是网络编程-Python 网络编程-嗨客网
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 网络编程-嗨客网相关推荐
- 在python中的转义字符是什么_Python转义字符-Python转义字符表-Python转义字符的作用-在Python中如何输出转义字符-嗨客网...
Python转义字符教程 在编程中有一些字符是打不出来的,比如换行,提示音,下一个制表位等等,于是程序语言的开发者就设计了转义序列(escape sequence)这种东西用来表达这些字符. 所谓转义 ...
- python islower函数_python字符串是否是小写-python 字符串小写-python islower函数-python islower函数未定义-嗨客网...
Python字符串是否是小写教程 在开发过程中,有时候我们需要判断一个 Python islower()函数详解 语法 str.islower() -> bool 参数 参数 描述 str 表示 ...
- python中用什么函数去掉空格_python去除字符串空格-python删除空格-python去掉空白字符-python strip函数-python trim函数-嗨客网...
Python去除字符串空格教程 在开发过程中,有时候我们需要去除一个 Python strip()函数详解 语法 S.strip([chars]) -> str 参数 参数 描述 S 表示原字符 ...
- python if elif用法_Python elif 条件判断-python if elif-python else if-Python elif使用-嗨客网...
Python elif条件判断教程 在 elif elif 语句只能写在 if 语句的同级代码的后面,且 elif 语句可以写任意多个. Python elif语句详解 语法 if condition ...
- python中isdigit函数什么意思_python字符串是否为数字类型-python isdigit函数-isdigit函数 python-python isdigit函数使用-嗨客网...
Python字符串是否是数字教程 在开发过程中,有时候我们需要判断一个 Python isdigit()函数详解 语法 str.isdigit() -> bool 参数 参数 描述 str 表示 ...
- python 字符串首字母,Python 字符串首字母大写-Python设置字符串首字母大写-python title()作用-python title函数-嗨客网...
Python字符串首字母大写 Python字符串首字母大写教程 在开发过程中,很多时候我们需要将一个 Python title()函数详解 语法 S.title() -> str 参数 参数 描 ...
- python网络编程好学吗_年薪30万+的python编程难不难?好学吗?
首先先了解下派森?什么是Python? python翻译成中文就是蟒;蚺蛇的意思.在计算机专业里面Python是一门课程,专门学习计算机编程的课程,是一种跨平台的计算机程序设计语言.一种高级,热门的编 ...
- python对建筑设计的帮助_建筑师为什么要会python编程?
作者: 马海东 时间: 20203.19 数字时代建筑师面临的问题 我们生存的这个时代是一个数字化的时代, 建筑师可以通过使用一系列与建筑设计类相关的软件工具,把他们的设计从"概念变成图纸& ...
- python编程开发电子书_最经典25本Python编程开发电子书精粹
Python开发者的哲学是"用一种方法,最好是只有一种方法来做一件事".在设计Python语言时,如果面临多种选择,Python开发者一般会拒绝花俏的语法,而选择明确的没有或者很少 ...
最新文章
- angular 触发 enter事件
- 禁止微信内置浏览器调整字体大小
- 腾讯测试鸿蒙系统,爆料:荣耀 30 Pro已开始测试华为鸿蒙系统
- day26(模块 logging 高级用法、collection、random)
- Linux引出环境变量的关键字,学习记录008-linux常用命令/设置系统and用户环境变量two(示例代码)...
- 152. 乘积最大子序列
- Java大厂面试题:从 JVM 角度说进程和线程之间的关系
- 豆瓣关于计算机视觉的书评及介绍
- 中国区块链专利数量全球第一 BAT专利数稳居世界20强
- bochs镜像java模拟器_bochs WIN7 IMG镜像文件
- 构建您的第一个Web爬网程序,第3部分
- Lacuncher3---修改文件夹图标和修改桌面布置
- MySQL之MHA高可用配置及故障切换实例
- 南京邮电大学壁纸计算机院,立夏 | 一大波夏日壁纸放送
- websocket重连机制
- 斯泰因梅茨-电路向量法的创始人
- 计算机的桌面窗户是什么情况,电脑桌面悬浮窗记事本软件怎么添加?适合桌面显示的便签软件...
- 高等数学:第十二章 微分方程(3)高阶线性微分方程、二阶常系数齐次线性微分方程
- 在水果检测中选择多光谱相机还是高光谱相机?
- linux内存故障排查