python全栈开发day27-网络编程
回顾:
1、两个架构:C/S B/S(统一了应用的接口)
2、同一个电脑两个py文件通信(文件)
3、两个电脑通信---网线
4、交换机的通信方式:广播、单播、组播
5、arp协议:通过ip地址找到对应的mac地址
6、osi五层模型:
应用层 :py文件
传输层 :tcp、udp协议
网络层 :ip协议
数据链路层 : 网卡、arp协议
物理层 : 网线、hub集线器、电信号相关
7、tcp协议特点:安全、面向连接、字节流形式传输
udp协议特点:快
8、tcp协议的三次握手过程:
客户端先发:我想请求连接
服务器发: 同意,我也想连接你
客户端发: 同意连接
9、tcp协议的四次挥手过程:
客户端:我想断开连接
服务器:行
服务器:我也想和你断开连接
客户端:行
10、路由器:有一个路由表,用来记录网段信息
11、网段怎么得到?
ip地址 按位与 子网掩码
今日内容:
1、解决一下怎么让服务器可以和多个客户端连接通信
2、学习udp协议
3、炫酷技能,可以在pycharm中打印带颜色的信息
4、时间同步的机制
知识点:
1、tcp协议,不允许在同一时间点同时和多个客户端连接通信
2、udp协议,允许在同一个时间点同时和多个客户端连接通信
作业:
1、tcp协议和udp协议的不同
2、tcp协议和udp协议的编码流程
tcp协议:
1)、创建一个sock对象
2)、绑定ip和端口
3)、设置监听
4)、等待接收连接(阻塞)
5)、读取虎发送bytes字节流
6)、关闭连接,关闭socket对象
udp协议:
1)、创建一个sock对象
2)、绑定ip和端口
3)、接收或发送数据
4)、关闭socket对象
3、完善一下qq聊天:
1、加入名称
2、加入颜色 :不要写死,每来一个客户端就要随机给一个颜色;
每个客户端的颜色不能出现重复的现象
4、尝试写一个文件上传下载的功能
上传/下载:client给server传一个文件,保证server获取到的文件名字一致
文件内容一致
md5校验文件内容是否一致
上传的时候,需要用户手动输入路径+文件名
大作业:ftp服务器
1、支持上传下载
2、可选择目录,可新建文件夹,
3、有返回上一目录的功能
4、登录注册
5、每个用户对应的目录应该是不一样的
python全栈开发day27-网络编程的更多相关文章
- Python全栈开发-Day8-Socket网络编程
本节内容 断言 Socket构建框架 ftp构建框架 Socket粘包 Socket介绍 Socket参数介绍 基本Socket实例 通过Socket实现简单SSH SocketServer 支持多用 ...
- Python全栈【Socket网络编程】
Python全栈[socket网络编程] 本章内容: Socket 基于TCP的套接字 基于UDP的套接字 TCP粘包 SocketServer 模块(ThreadingTCPServer源码剖析) ...
- python全栈开发day28-网络编程之粘包、解决粘包,上传和下载的作业
一.昨日内容回顾 1. tcp和udp编码 2. 自定义mysocket解决编码问题 二.今日内容总结 1.粘包 1)产生粘包原因: (1).接收方不知道消息之间的边界,不知道一次性要取多少字节的数据 ...
- python全栈开发-Day7 字符编码总结
python全栈开发-Day7 字符编码总结 一.字符编码总结 1.什么是字符编码 人类的字符--------->翻译--------->数字 翻译的过程遵循的标准即字符编码(就是一个字符 ...
- 学习笔记之Python全栈开发/人工智能公开课_腾讯课堂
Python全栈开发/人工智能公开课_腾讯课堂 https://ke.qq.com/course/190378 https://github.com/haoran119/ke.qq.com.pytho ...
- Python全栈开发相关课程
Python全栈开发 Python入门 Python安装 Pycharm安装.激活.使用 Python基础 Python语法 Python数据类型 Python进阶 面向对象 网络编程 并发编程 数据 ...
- Python 全栈开发【第0篇】:目录
Python 全栈开发[第0篇]:目录 第一阶段:Python 开发入门 Python 全栈开发[第一篇]:计算机原理&Linux系统入门 Python 全栈开发[第二篇]:Python基 ...
- Python全栈开发【面向对象】
Python全栈开发[面向对象] 本节内容: 三大编程范式 面向对象设计与面向对象编程 类和对象 静态属性.类方法.静态方法 类组合 继承 多态 封装 三大编程范式 三大编程范式: 1.面向过程编程 ...
- Python全栈开发【模块】
Python全栈开发[模块] 本节内容: 模块介绍 time random os sys json & picle shelve XML hashlib ConfigParser loggin ...
随机推荐
- linux的基本操作与常见命令
linux的基本操作与常见命令: jdk的安装: 步骤:(特别注意:虚拟机安装的一般是32位的操作系统,jdk也必须使用32位的) 查看虚拟机版本:sudo uname --m i686 //表示是3 ...
- 《Maven实战》笔记
maven是什么 maven是 构建工具 依赖关系工具 项目信息管理工具 而JAVA世界的ant只是一个构建工具,不具备依赖管理的功能,需要配合使用ivy进行依赖管理. maven的安装 下载mave ...
- ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password:NO)
转自:http://blog.sina.com.cn/s/blog_586a1f3e01000b82.html 刚使用mysql, 就老是碰到这个问题,真是郁闷, 终于找到原因.. C:\Progra ...
- JAVA NIO 中的 zerocopy 技术提高IO性能
关于一篇更详细更好的介绍 ZeroCopy技术的文章,可参考:JAVA IO 以及 NIO 理解 这篇文章介绍了 zerocopy技术来提高Linux平台上的IO密集型的JAVA应用程序的性能. ze ...
- 22. SpringBoot 集成 Mybatis
1. 引入Mybatis的maven 依赖 <dependency> <groupId>org.mybatis.spring.boot</groupId> < ...
- [C++]数组与指针(纯代码-复习用)
#include<iostream> #include<cmath> //C++ //#include<math.h> //C #include<ctime& ...
- USB摄像头无法正常读取问题
opencv读取摄像头或者视频一种是早期版本的IplImage结构体,图片就存在结构体指针IplImage*中,另一种是Mat类,两者在操作上略有差异,且opencv2都兼容这两个版本,前面的博客也说 ...
- Ubuntu16.04安装搜狗拼音输入法(中文输入法)
虽然网上有很多教程,但是我觉得我的很适合那些真正的小白... 1.下载文件 由于我要给多台电脑安装搜狗输入法,所以用的是文件夹安装,不是命令行安装. 打开官网http://pinyin.sogou.c ...
- day1 查看当前目录命令:pwd
用到查看当前目录的完整路径使用:pwd 物理路径和连接路径什么鬼?没明白暂时借鉴别人的记录下 显示当前目录的物理路径 pwd –P 1: [root@DB-Server init.d]# cd /et ...
- 关于apache 开启 ssl https 支持 TLS1.2 的些事
项目背景 需要搭建一个小程序的服务器,当然要使用https协议服务器windows service 2012 r2,后台语言是php,服务集成环境装的是appserv2.5 ,apache2.2证书申 ...