栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python高级编程3-网络基础

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python高级编程3-网络基础

网络基础

文章目录
  • 一、什么是网络?
    • (一)物理层
    • (二)数据链路层
    • (三)网络层
    • (四)传输层
    • (五)应用层
  • 二、套接字socket

一、什么是网络?

网络:实现资源的共享,实现数据信息的快速传递

网络发送数据的时候不是随便给我们发送的,有着固定的格式,有规定的。

这个时候就有了互联网协议:规定了怎么发数据,怎么收数据

我们按照协议的不同从逻辑层面做了一个划分(OSI七层,TCP/IP五层,TCP/IP四层)

OSI七层 TCP/IP五层

应用层

表示层 =====》 应用层

会话层

传输层 =====》 传输层

网络层 =====》 网络层

数据链路层 =====》 数据链路层

物理层 =====》 物理层

(一)物理层

物理层:建立底层的通信介质,通过网线将二进制数据发送出去

(二)数据链路层

数据链路层:单纯的电信号,只有高低高低,0101啥的,没有意义。数据链路层定义了电信号的分组方式

  • 以太网协议
    • 一组电信号构成数据包
    • 每个数据包分为:报头、数据两个部分
      • 报头:包含固定的18个字节(我这个数据包发出去要别人知道怎么收数据)
        • 发送者 源地址
        • 接受者 目标地址
        • 对数据的描述
      • 数据包含:
        • 数据的具体内容
(三)网络层

引入了一个新的地址,用来区分子网、网络地址、IP协议、IPv4.

使用的是32位的2进制来表示

0.0.0.0~255.255.255.255

00000000.00000000.00000000.00000000

11111111.11111111.11111111.11111111

一个IP地址我们通常是使用点分十进制表示:172.16.10.1 就是地址的数据我们用十进制来表示

  • 如果你想要开发一个所有人都能访问的网站:

    • 要申请一个公网IP
    • 买一台服务器(就是一台性能非常好的电脑)
    • 公网IP绑定到这个服务器
    • 把你写好的代码在这个服务器上运行起来
  • 我们所有的网络程序可以分为两种

    应用类:需要下载的 QQ、微信、网盘

    web类:通过浏览器去使用的 百度、知乎、淘宝

    • C/S架构 客户端和服务端(应用类)
    • B/S架构 浏览器和服务端(web类)
(四)传输层

网络层的IP帮我们区分了子网,mac地址帮我们找到了具体的机器

我们要如何标识机器上的应用程序,使用的就是端口,建立了端口到端口的通信

指定了传输协议:TCP UDP协议

  • TCP协议:
  • UDP协议:
(五)应用层

规定了应用程序的数据格式。

二、套接字socket

帮我把TCP/IP协议的都封装了

我们写程序要先写服务端,再写客户端

服务端:为客户端提供服务

客户端:考虑一些界面性的东西

import socket

#1 创建一个socket对象   (比如通过socket去收发消息)   (有电话)
server_object = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  #socket这个包内有个socket这个类
	#socket.AF_INET表示我们地址的类型
    
#2 绑定地址   bind需要的参数是一个元组    (有电话号码)
server_object.bind(("127.0.0.1", 10086))
	# 127.0.0.1:本地回环地址
    # 10086:端口号
    
#3 设置监听    (开机)
server_object.listen(5)

#4 处理客户端的请求
conn ,addr = server_object.accept()
	#conn:接收端口值
    #addr:接收IP地址
    
#5 收发消息
data = conn.recv(1024)#你可以设置一次接收1024个字节

conn ,addr = server_object.accept()
#conn:接收端口值
#addr:接收IP地址

#5 收发消息
data = conn.recv(1024)#你可以设置一次接收1024个字节

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/857742.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号