返回顶部
首页 > 资讯 > 后端开发 > Python >python3--网络编程一
  • 449
分享到

python3--网络编程一

网络编程 2023-01-30 22:01:04 449人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

有两个文件a.py和b.py,分别去运行,这两个python的文件分别运行的很好,但是如果这两个程序之间想要传递一个数据,要怎么做呢?创建一个文件,把a.py想要传递的内容写到文件中,然后b.py从这个文件中读取内容就可以了但是当你的a.p

有两个文件a.py和b.py,分别去运行,这两个python的文件分别运行的很好,但是如果这两个程序之间想要传递一个数据,要怎么做呢?

创建一个文件,把a.py想要传递的内容写到文件中,然后b.py从这个文件中读取内容就可以了

blob.png

但是当你的a.py和b.py分别在不同电脑上的时候,你要怎么办呢?类似的机制有计算机网盘,qq等。


软件开发的架构

我们了解的涉及到两个程序之间通讯的应用大致可以分为两种:

第一种是应用类:qq,微信,网盘,优酷这一类是属于需要安装的桌面应用

第二种是WEB类:比如百度,知乎等使用浏览器访问就可以直接使用的应用

这些应用的本质其实都是两个程序之间的通讯,而这两个分类又对应了两个软件开发架构


C/S架构

C/S即:Client与Server, 中文意思:客户端与服务器端架构,这种架构也是从用户层面(也可以使物理层面)来划分的

这里的客户端一般泛指客户端应用程序exe,程序需要先按照后,才能运行在用户的电脑上,对用户的电脑操作系统环境依赖较大

blob.png


B/S架构

B/S即:Browser与Server,中文意思:浏览器端与服务器端架构,这种架构是从用户层面来划分的。Browser浏览器,其实也是一种Client客户端只是这个客户端不需要大家去安装什么应用程序,只需在浏览器上通过Http请求服务器端相关的资源(网页资源),客户端Browser浏览器就能进行增删改查。

blob.png


网络基础

计算机网络的发展及基础网络概念

问题:网络到底是什么?计算机之间是如何通信的?

早期 : 联机

blob.png


以太网 : 局域网与交换机

blob.png


广播

主机之间“一对所有”的通讯模式,网络对其中每一台主机发出的信号都进行无条件复制并转发,所有主机都可以接收到所有信息(不管你是否需要),由于其不用路径选择,所以其网络成本可以很低廉。有线电视网就是典型的广播型网络,我们的电视机实际上是接受到所有频道的信号,但只将一个频道的信号还原成画面。在数据网络中也允许广播的存在,但其被限制在二层交换机的局域网范围内,禁止广播数据穿过路由器,防止广播数据影响大面积的主机


ip地址与ip协议

规定网络地址的协议叫ip协议,它定义的地址称之为ip地址,广泛采用的v4版本即ipv4,它规定网络地址由32位2进制表示

范围0.0.0.0-255.255.255.255

一个ip地址通常写成四段十进制数,例:172.16.10.1


mac地址

head中包含的源和目标地址由来:ethernet规定接入internet的设备都必须具备网卡,发送端和接收端的地址便是指网卡的地址,即Mac地址。

mac地址:每块网卡出厂时都被烧制上一个世界唯一的mac地址,长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号)


arp协议 ——查询IP地址和MAC地址的对应关系

   地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个tcp/IP协议。

   主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址。

   收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。

   地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。相关协议有RARP、代理ARP。NDP用于在IPv6中代替地址解析协议。 


广域网与路由器

blob.png


路由器

路由器(Router),是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。 路由器是互联网络的枢纽,"交通警察"。目前路由器已经广泛应用于各行各业,各种不同档次的产品已成为实现各种骨干网内部连接、骨干网间互联和骨干网与互联网互联互通业务的主力军。路由和交换机之间的主要区别就是交换机发生在OSI参考模型第二层(数据链路层),而路由发生在第三层,即网络层。这一区别决定了路由和交换机在移动信息的过程中需使用不同的控制信息,所以说两者实现各自功能的方式是不同的。

  路由器(Router)又称网关设备(Gateway)是用于连接多个逻辑上分开的网络,所谓逻辑网络是代表一个单独的网络或者一个子网。当数据从一个子网传输到另一个子网时,可通过路由器的路由功能来完成。因此,路由器具有判断网络地址和选择IP路径的功能,它能在多网络互联环境中,建立灵活的连接,可用完全不同的数据分组和介质访问方法连接各种子网,路由器只接受源站或其他路由器的信息,属网络层的一种互联设备


局域网

 局域网(Local Area Network,LAN)是指在某一区域内由多台计算机互联成的计算机组。一般是方圆几千米以内。局域网可以实现文件管理、应用软件共享、打印机共享、工作组内的日程安排、电子邮件和传真通信服务等功能。局域网是封闭型的,可以由办公室内的两台计算机组成,也可以由一个公司内的上千台计算机组成


子网掩码

所谓”子网掩码”,就是表示子网络特征的一个参数。它在形式上等同于IP地址,也是一个32位二进制数字,它的网络部分全部为1,主机部分全部为0。比如,IP地址172.16.10.1,如果已知网络部分是前24位,主机部分是后8位,那么子网络掩码就是11111111.11111111.11111111.00000000,写成十进制就是255.255.255.0。

知道”子网掩码”,我们就能判断,任意两个IP地址是否处在同一个子网络。方法是将两个IP地址与子网掩码分别进行AND运算(两个数位都为1,运算结果为1,否则为0),然后比较结果是否相同,如果是的话,就表明它们在同一个子网络中,否则就不是。

比如,已知IP地址172.16.10.1和172.16.10.2的子网掩码都是255.255.255.0,请问它们是否在同一个子网络?
两者与子网掩码分别进行AND运算,172.16.10.1:10101100.00010000.00001010.000000001
255255.255.255.0:11111111.11111111.11111111.00000000
AND运算得网络地址结果:10101100.00010000.00001010.000000001->172.16.10.0

172.16.10.2:10101100.00010000.00001010.000000010
255255.255.255.0:11111111.11111111.11111111.00000000
AND运算得网络地址结果:10101100.00010000.00001010.000000001->172.16.10.0结果都是172.16.10.0,
因此它们在同一个子网络。

总结一下,IP协议的作用主要有两个,一个是为每一台计算机分配IP地址,另一个是确定哪些地址在同一个子网络


一个程序如何在网络上找到另一个程序?

首先,程序必须要启动,其次,必须有这台机器的地址,我们都知道我们人的地址大概就是国家\省\市\区\街道\楼\门牌号这样字。那么每一台联网的机器在网络上也有自己的地址,它的地址是怎么表示的呢?就是使用一串数字来表示的,例如:100.4.5.6

IP地址是指互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),是IP Address的缩写。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。

IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。例:点分十进IP地址(100.4.5.6),实际上是32位二进制数(01100100.00000100.00000101.00000110)

"端口"是英文port的意译,可以认为是设备与外界通讯交流的出口。

因此ip地址精确到具体的一台电脑,而端口精确到具体的程序。

--结束END--

本文标题: python3--网络编程一

本文链接: https://www.lsjlt.com/news/179064.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python3--网络编程一
    有两个文件a.py和b.py,分别去运行,这两个python的文件分别运行的很好,但是如果这两个程序之间想要传递一个数据,要怎么做呢?创建一个文件,把a.py想要传递的内容写到文件中,然后b.py从这个文件中读取内容就可以了但是当你的a.p...
    99+
    2023-01-30
    网络编程
  • python3--网络编程二
    tcp协议和udp协议用于应用程序之间的通信。如果说ip地址和mac地址帮我们确定唯一的一台机器,那么我们怎么找到一台机器上的一个软件呢?端口我们知道,一台拥有IP地址的主机可以提供许多服务,比如Web服务、FTP服务、SMTP服务等,这些...
    99+
    2023-01-30
    网络编程
  • python3网络编程之socket
      http://www.cnblogs.com/Bigtre/p/7261387.html...
    99+
    2023-01-31
    网络编程 socket
  • python网络编程(一)
    python网络编程想使用python体验下多简单,于是写了最简单的一个C/S程序,的确实现起来很简单!服务器端程序:#!/usr/bin/pythonimport socketlistensock=socket.socket(socket...
    99+
    2023-01-31
    网络编程 python
  • 网络编程
    1. 网络编程入门 1.1 网络编程概述 计算机网络 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统 网络编程...
    99+
    2023-08-30
    网络 Java
  • Java网络编程 - 网络编程介绍 - 网络通信三要素
    文章目录 网络编程网络编程介绍网络通信三要素要素一: IP地址IP地址基本介绍IP地址的操作类 要素二: 端口号要素三: 协议TCP协议UDP协议 网络编程 网络...
    99+
    2023-09-07
    网络 java 网络协议
  • python网络编程-socket编程
    一、服务端和客户端 BS架构 (腾讯通软件:server+client) CS架构 (web网站)   C/S架构与socket的关系: 我们学习socket就是为了完成C/S架构的开发   二、OSI七层模型 互联网协议按照功能不同分为...
    99+
    2023-01-31
    网络编程 python socket
  • Android网络编程
    Android网络编程目录小朋友你是不是有很多问号???一、网页源码查看器二、消息机制的写法(重点)1、相关概念2、Handler的使用3、消息...
    99+
    2022-06-06
    Android
  • 网络编程(全)
    【网络编程】 今日内容 软件架构CS/BS网络通信三要素TCP通信Socket套接字ServerSocket文件上传自定义服务器 第一章 网络编程入门 1.1软件结构 C/S结构 :全称为Client...
    99+
    2023-09-06
    网络 tcp/ip 服务器
  • Java 网络编程
    Java 网络编程   目录 Java 网络编程   Socket 编程 ServerSocket 类的方法 Socket 类的方法   InetAddress 类的方法 Socket 客户端实例 Socket 服务端实例     网络编...
    99+
    2023-10-09
    java
  • Python 网络编程
    Python 网络编程 Python 提供了两个级别访问的网络服务: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统 Socket 接口的全部方法。 高级别的网络服务模块 S...
    99+
    2023-08-31
    网络 服务器 运维
  • 网络编程—tcp
              一、TCP简介           二、tcp网络程序-客户端           三、tcp网络程序-服务器           四、案例:文件下载器           五、tcp三次握手、四次挥手        ...
    99+
    2023-01-31
    网络编程 tcp
  • 网络编程—udp
    一、ip地址 1. 什么是地址 地址就是用来标记地点的   2. ip地址的作用 ip地址:用来在网络中标记一台电脑,比如192.168.1.1;在本地局域网上是唯一的。   3. ip地址的分类 每一个IP地址包括两部分:网络地址和主机...
    99+
    2023-01-31
    网络编程 udp
  • Python网络编程
    # notes 要点网络编程 客户端/服务器架构 客户端/服务器网络编程 套接字是计算机网络数据结构。在任何类型的通信开始之前,网络应用程序必须创建套接字。可以将它们比作电话插孔,没有它将无法进行通信。 进程间通信(Inter Proc...
    99+
    2023-01-31
    网络编程 Python
  • 【网络编程】网络编程 和 Socket 套接字认识
    ✨个人主页:bit me👇 ✨当前专栏:Java EE初阶👇 目 录 🎧一. 网络编程基础🎺1. 为什么需要网络编程?🎷2....
    99+
    2023-08-23
    网络 服务器 java
  • Python3网络爬虫(十一):爬虫黑科
    原文链接: Jack-Cui,http://blog.csdn.net/c406495762 运行平台: Windows Python版本: Python3.x IDE: Sublime text3 1 前言 近期,有些朋友问我一些关...
    99+
    2023-01-31
    爬虫 网络
  • 一文带你学会Java网络编程
    目录1.java网络编程概述2.InetAddress类3.Socket 编程4.TCP编程TCP字节流编程TCP字符流编程5.网络上传文件6.TCP文件下载1.java网络编程概述...
    99+
    2022-11-13
    Java网络编程 Java 网络
  • Java的网络功能与编程 一 (转)
    Java的网络功能与编程 一 (转)[@more@]Java的网络功能与编程徐迎晓(上海大学计算中心25#) 摘 要:Java语言是Inte.NET上最热门的编程语言,本文针对 Java的网络功能,对Java从...
    99+
    2023-06-03
  • 【Linux网络】网络编程套接字 -- 基于socket实现一个简单UDP网络程序
    认识端口号网络字节序处理字节序函数 htonl、htons、ntohl、ntohs socketsocket编程接口sockaddr结构结尾实现UDP程序的socket接口使用解析so...
    99+
    2023-09-01
    网络 linux udp socket
  • C#网络编程之Socket编程
    目录一:什么是SOCKET套接字分类二:SOCKET相关概念1、端口2、协议2.1 TCP:2.2 UDP三:socket一般应用模式:四:SOCKET通信基本流程图:服务器端:客户...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作