python day27

今日内容


知识点补充

import json
from datetime import datetime,date
""" res = {'c1':datetime.today(),'c2':date.today()} print(json.dumps(res)) 返回结果:TypeError: Object of type 'datetime' is not JSON serializable """
class MyJson(json.JSONEncoder):
def default(self, o):
if isinstance(o,datetime):
return o.strftime('%Y-%m-%d %X')
elif isinstance(o,date):
return o.strftime('%Y-%m-%d')
else:
return super().default(self,o)
res
= {'c1':datetime.today(),'c2':date.today()}
print(json.dumps(res,cls=MyJson))

# 多看看源码吧

 

网络编程


软件开发架构

c/s架构(client/server)

  • c:客户端--什么时候想体验服务了,就去找服务端寻求服务
  • s:服务端--24小时不间断提供服务

b/s架构(browser/server)

  • b:浏览器
  • s:服务器

PS:b/s架构本质上也是c/s架构

总结:

  • 手机端看上去CS架构比较火,实际上BS已经在悄悄崛起,手机端之后肯定也是BS比较火
  • 微信支付宝都在做一件事:统一接口
  • 学习网络编程,就可以开发一个cs架构的软件
  • 学习并发,数据库,前端,Django就可以开发一个bs架构的软件

网络编程发展史

任何先进的技术最早都来源于军事

总结:

  • 要实现远程通信第一个需要具备的条件是:物理连接介质
    • 1.早期的电话----电话线

    • 2.老式电脑----网线

    • 3.笔记本电脑/无线电话----网卡

  • 人要想实现无障碍交流,必须要说统一的语言,而计算机与计算机之间要想实现远程通信除了有物理连接介质之外还需要有一套公共的标准/协议

OSI协议

OSI七层协议
应用层
表示层
会话层
传输层
网络层
数据链路层
物理连接层
OSI五层协议
应用层
传输层
网络层
数据链路层
物理连接层
OSI五层协议详述

1.物理连接层

  基于电信号传输二进制数据

2.数据链路层

  • 1.规定的电信号的分组方式
  • 2.规定了任何一台接入互联网的计算机都必须有一块网卡,且每一块网卡上面都刻有世界上独一无二的编号(mac地址)
    • mac地址(12位16进制数)
      • 前6位是厂商编号
      • 后6位是流水线编号

PS:以上两点合称为"以太网协议"

3.网络层

  IP协议:规定了只要是接入互联网的计算机都必须有一个IP地址

  ip地址特点:点分十进制

  ip地址最小:0.0.0.0

  ip地址最大:255.255.255.255

  ip地址目前有两个版本:IPV4 IPV6

 

4.传输层

  • TCP\UDP都是基于端口工作的协议
  • 端口(port):用来唯一标识一台计算机上的某个应用程序
    • 端口号的范围:0~65535
    • 注意:0~1024这些都是操作系统默认使用的端口号
    • 建议:使用8000之后的端口
      • MySQL默认端口:3306
      • Redis默认端口:6379
      • django默认端口:8000
      • flask默认端口:5000
    • 端口号是动态分配的
    • 程序被分配到端口号后,重新启动时会被重新分配另一个端口号

5.应用层

  • HTTP协议
  • FTP协议

局域网与交换机:

交换机

广域网与路由器:

路由器

 


总结:

  • 由于IPV4已经不够表示目前存在的计算机了 所以推出了IPV6版本
  • 互联网是由若干个局域网互相连接而成的
  • 计算机与计算机之间其实是计算机上的应用程序与应用程序之间的通信
  • 交换机:基于以太网协议通信,不能跨局域网通信
  • ip地址:用来唯一标识接入互联网的一台计算机
  • port端口:用来唯一标识一台计算机上的某个应用程序
  • ip+port:唯一标识接入互联网一台计算机上的某个应用程序
  • TCP协议:
    • 流式协议,可靠协议
    • 基于TCP协议通信,必选先建立双向通道
    • TCP协议传输数据之所以可靠的原因就在于有双向通道这句话是错误的,因为正确的原因是因为TCP协议的传输具有反馈机制

基于TCP协议传输数据:三次握手四次挥手

三次握手四次挥手(图解)

其中TIME_WAIT就是Client客户端等待Server服务端返回消息数据的等待时间

且建立连接时有两步操作:

  • ACK=x + 1传输数据
  • SYN seq=y允许传输操作

上面两步操作可合为一步

三次握手建连接 (图解)

四次挥手断连接(图解)

转载于:https://www.cnblogs.com/zhukaijian/p/11311454.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/549803.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

硬件_LED

LED 平台&#xff1a;全志A64 源码&#xff1a;Android 7.1 Linux 3.1 led.c 1 //没有使用平台总线2 3 #include <linux/init.h>4 #include <linux/module.h>5 #include <linux/fs.h>6 #include <linux/device.h>7 #include <linux/slab.h>8 #i…

水星路由器DNS服务器未响应,水星路由器进不去设置怎么办

摘 要水星路由器进不去设置怎么办&#xff1f;这里要分两种情况&#xff0c;旧版水星路由器与新版水星路由器一、旧版水星路由器 1、当打开水星路由器设置页面&#xff0c;如果提示你输入用户名和密码&#xff0c;如下图所示。说明这是一台旧版本的水星路由器水星路由器进不去设…

zookeeper 简介

什么是ZookeeperZookeeper是一个分布式开源框架&#xff0c;提供了协调分布式应用的基本服务&#xff0c;它向外部应用暴露一组通用服务——分布式同步&#xff08;Distributed Synchronization&#xff09;、命名服务&#xff08;Naming Service&#xff09;、集群维护&#x…

小程序的服务器怎么与数据库连接,小程序怎么连接服务器数据库

小程序怎么连接服务器数据库 内容精选换一换“数据导出”章节适用于MRS 3.x及后续版本。Loader是实现MRS与关系型数据库、文件系统之间交换数据和文件的ETL工具&#xff0c;支持将数据或者文件从MRS系统中导出到关系型数据库或文件系统中。Loader支持如下数据导出方式&#xff…

啪啪三国2获取服务器信息,啪啪三国2怎么快速的获得资源?

啪啪三国2&#xff1a;在啪啪三国2手游中有很多特色的玩法&#xff0c;还有很多资源&#xff0c;游戏中有很多地方需要用到&#xff0c;有点供不应求的感觉&#xff0c;很多玩加都想要快速的获得各种资源。小伙伴们知道该怎么快速获得吗&#xff1f;这里小编就给大家来详细的介…

C#常用的文件操作 (转)

C#常用的文件操作 C#常用的文件操作&#xff08;网上收集&#xff09; C#写入/读出文本文件&#xff0c;包括创建文件&#xff0c;追加文件&#xff0c;修改文件&#xff0c;等等操作&#xff0c;个人觉得很适用&#xff0c;所以收藏了&#xff0c;和大家分享 publicvoidPage…

CSS3动画和VUE动画整理

W3School CSS3过渡 浏览器支持 Internet Explorer 10、Firefox、Chrome 以及 Opera 支持 transition 属性。Safari 需要前缀 -webkit-。 注释&#xff1a;Internet Explorer 9 以及更早的版本&#xff0c;不支持 transition 属性。 注释&#xff1a;Chrome 25 以及更早的版本…

VueJS项目

VueJS项目 - awesome-vue vue-cli引用jquery, bootstrap, bootstrap-table 引用jquery 找到vue-project/build/webpack.base.conf.js文件&#xff0c;在module.exports下添加plugins, 需要在之前&#xff0c;引用webpack, var webpack require(webpack); 参考 plugins: [n…

[OSG]如何用Shader得到物体的世界坐标

最近群里面有个朋友问我关于如何得到OpenGL世界坐标的问题&#xff0c;当时我还弄错了&#xff0c;误以为gl_ModelViewMatrix*gl_Vertex就是世界坐标。因最近也突然遇到了世界坐标的问题&#xff0c;所以花了一些时间来研究这个问题&#xff0c;网上也有人问&#xff0c;但或许…

Exposing Windows Forms Controls as ActiveX controls

转&#xff1a;http://www.codeproject.com/cs/miscctrl/exposingdotnetcontrols.asp?df100&forumid2373&exp0&select1359005 Download demo project - 15 Kb This article will describe how to utilise Windows Forms controls outside of .NET. In a recent MS…

QT_C++

QT_C C 与 C 区别&#xff1a;  面向过程&#xff1a;吃&#xff08;狗&#xff0c;屎&#xff09; 面向对象&#xff1a;狗. 吃&#xff08;屎&#xff09; ^ . ^ 博客&#xff1a;https://www.runoob.com/cplusplus/cpp-tutorial.html 插入符&#xff1a;<< 控制符…

静态路由的实现

在路由器A上做如下配置&#xff1a;router(config)#hostname AA(config)#interface f0/0A(config-if)#ip address 192.168.1.1 255.255.255.0 A(config-if)#no shutdownA(config)#interface f0/1A(config-if)#ip address 192.168.2.1 255.255.255.0 A(config-if)#no shutdownA(…

2019-08-09 纪中NOIP模拟赛B组

T1 [JZOJ1035] 粉刷匠 题目描述 windy有N条木板需要被粉刷。 每条木板被分为M个格子。 每个格子要被刷成红色或蓝色。 windy每次粉刷&#xff0c;只能选择一条木板上一段连续的格子&#xff0c;然后涂上一种颜色。 每个格子最多只能被粉刷一次。 如果windy只能粉刷 T 次&#x…

vue3实现打字机的效果

前言&#xff1a; vue3项目中实现打字机的效果。 实现效果&#xff1a; 实现步骤&#xff1a; 1、安装插件 npm i vue3typed 2、main.js中配置 import vuetyped from vue3typedconst app createApp(App) // 挂载打字机的全局方法 app.use(vuetyped) 3、界面使用 <vuet…

hightopo学习系列:hightopo介绍(一)

起因 新的软件主管来公司以后&#xff0c;有整整2周的时间没有搭理前端开发。就在这周一快下班的时候&#xff0c;突然和我说话了。问了我一些以前用的图形库&#xff0c;并让我开始了解hightopo。甩给了我一个全拼&#xff0c;就拂袖而去&#xff0c;留下一脸懵逼的我。 没办…

Unity工程无代码化

目的 Unity默认是将代码放入工程&#xff0c;这样容易带来一些问题。1. 代码和资源混合&#xff0c;职能之间容易互相误改。2. 当代码量膨胀到一定程度后&#xff0c;代码的编译时间长到无法忍受。新版的unity支持通过asmdef来将代码分成多个dll工程&#xff0c;有所缓解。所以…

曾国藩传 读后感

转载于:https://www.cnblogs.com/eat-too-much/p/11335113.html

深入C#学习系列一:序列化(Serialize)、反序列化(Deserialize)

深入C#学习系列一&#xff1a;序列化(Serialize)、反序列化(Deserialize) 序列化又称串行化&#xff0c;是.NET运行时环境用来支持用户定义类型的流化的机制。其目的是以某种存储形成使自定义对象持久化&#xff0c;或者将这种对象从一个地方传输到另一个地方。.NET框架提供了两…

十一月·飘·立冬

十一月的南粤叶依然青翠在枝头与秋风和舞落叶遍地的诗意画面在博客生活逝如流年 渐走渐淡回忆飘然而来又飘然而去秋的最后一天放下回忆 飘去天涯飘不要说也不要问目光交错的一瞬注定了今生缘分此情可以见真心春风急 秋风也狠乱乱纷纷 是红尘浮浮沉沉 似幻似真金枝玉叶的结…

Centos 系统安装NetCore SDK命令以及一系列操作(1)

17年买的jesse老师的课程&#xff0c;虽然说NetCore出来很久了&#xff0c;自己打入行的时候就奔它去的&#xff0c;但。。。。废话不说了&#xff0c;还是自己做了再说吧&#xff0c; 首先需要一个Centos系统来让我们开始玩&#xff0c;下载地址&#xff1a;https://www.cento…