django-网络编程_20191210

django-网络编程

网络通信概述:

  • 了解是怎么通信的?
  • 两大块,1,udp,2,tcp,这两个都可以实现通信,udp比较简单,tcp比较复杂,
  • 我们要实现一个功能,你在你的电脑发送一个hello,别人的电脑能受到,这就行了,
  • 网络是美国人发明的,

ip地址:

  • 为什么数据能准确传输给某一台设备,
  • 这是因为有一个唯一标记,怎么标记的?通过ip地址,
  • ip地址用来标记网络上的一台电脑,
  • Linux命令:
  • 查看ip地址:ifconfig,
  • 关闭网卡:sudo ifconfig ens40 down,
  • ctrl+A快速回到行首,ctrl+E,快速回到行末,
  • 开启网卡:sudo ifconfig ens40 up,

ip地址的分类:

  • ip地址分为两类,ipv4,ipv6,
  • ipv4用的最多,ip有四组数字,
  • 256*256*256*256,0-255,每一个组有256个值,一共是256个四次方,
  • 现在这个值不够了,
  • 每一个区域的ip都是不同的,可以根据ip判断哪一个国家,哪一个地区,哪一个人,所以你违法犯罪,一下就能找到你,
  • ipv6的诞生就成为了必然,号称全球的每一粒沙子都可以一个ip,
  • 但是ipv6现在还是不常用的,因为使用这个很多设备都要改,很多机构都排斥不用,但是未来每一个人都有很多设备的时候,肯定还会用ipv6,

端口:

  • A电脑到了B电脑,是通过ip,
  • 到了B电脑,一个电脑有很多的程序,是给哪一个程序呢?
  • 所以还需要一个值,就是端口号,用来标记这个电脑上的一个程序,
  • 所以A传输数据到B的时候,至少五个内容,
  • dest_ip(目标ip):192,。168.1.2
  • src_ip(源ip):192.168.1.1
  • dest_port(目标端口):7788
  • src_port(源端口):4567
  • content:你好
  • 这样A就可以发送数据到B,B也可以发送数据到A了,
  • 所以网络通信必备ip和端口,

端口分类:

  • 端口可以想象成一个门,这就是门牌号,
  • 一个程序没有运行之前叫程序,运行起来了叫进程,
  • 端口分为两类,知名端口和动态端口,
  • 知名端口,大家都知道,小于1024的不能随便用,大于1024的随便用,
  • 端口从0-65535,动态端口就是从1024-65535

socket介绍,

  • 套接字,
  • 套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。
  • 作用:完成两个应用程序之间的数据传输
  • 实质:一种独立于协议的网络编程接口
  • 使用socket就可以完成网络通信,
  • 今天你见到的所有的网络程序,百分之百用到了socket,只有通过他才可以通信,
  • socket是完成网络通信的必备的东西,
  • 想用socket,怎么用?先创建,读写,关闭,
  • 格式:
  • import socket
  • 这是创建:
  • s=socket.sockt(socket.AF_INET,socket.SOCK_DCRAM)
  • s=socket.sockt(socket.AF_INET,socket.SOCK_STREAM)
  • socket.AF_INET这是代表ipv4,socket.socket.STREAM这是tcp,socket.SOCK_DCRAM,这是udp,
  • 所以可以创建是基于udp的,还是tcp的,

收发数据:

  • 可以写一个程序发送数据,
  • python交互模式:python3,进入交互模式,
  • 不只是要发送,还要可以接收,
  • 需要有一个程序拥有一个固定的端口,
  • 代码不是从第一行写的,是什么时候用什么时候补的,
  • 所以编程的思想最重要了,一定要理清程序,理清逻辑,
  • 需要有编码规范,pep8,
  • 收数据的流程:
  • 1,创建套接字,
  • 2,发送数据,
  • 3,关闭,
  • 接收数据的流程:
  • 1,创建套接字,
  • 2,绑定本地自己的信息,ip和端口
  • 3,接收数据,
  • 4,关闭,
  • 发送可以不绑定端口,但是接收一定要绑定端口,

输入对方ip,port,全双工,半双工,单工,

  • 在不同电脑可以通信,同一台电脑也可以进行通信,
  • 本机ip,127.0.0.1,
  • 套接字,可以同时收发数据的,
  • 单工,百分之百只能忘一个方向,广播,
  • 半双工,可以收,也可以发,但是同一时间只能收或者发,对讲机,
  • 全双工,可以同时收发,比如打电话,这个socket就是全双工的,

udp聊天器:

扫描二维码关注公众号,回复: 8133109 查看本文章
  • 先模仿,再创造,工作中也是,先找一个人模仿学习,
  • 编程思路,往往就是逻辑的推理,一般就是正推和倒推,
  • 同一个功能,可以封装到一个函数里面去,这个也是写的多了,逐渐的封装的,不是上来直接就封装的,
  • 写函数的时候有局部变量的问题,需要理清楚,

tcp介绍:

  • 传输控制协议,
  • udp想象成写信,每一封信都要写收件人的地址,这种不太安全,这封信可能丢,
  • tcp比较安全,更加稳定,tcp也可能丢包,但是会重发,比如打电话,打电话的时候会嘟嘟嘟的响,这是在确定通道,通了之后这个通道会占用,别人就不能打了,
  • 所以tcp比较复杂, 但是比较安全,稳定,
  • ----------------------------------
  • tcp采用了应答机制,
  • 比如udp,
  • a给b发了一个信息,b有没有收到,这是不会给a回复的,
  • 但是tcp,
  • a发送了一个消息给b,b会告诉a我收到了,这是有回复的,a发送了之后,会开始计时,如果没有收到,会超时重传,
  • 所以tcp的机制,就比较安全,会确保数据已经传递过去了,
  • -----------------------------------
  • 使用迅雷下载的时候,会有下载也会有上传,这种上传就是一种应答,告诉对方我接收到了,
  • 此外,tcp还有错误校验,流量控制,阻塞管理,这些机制,这些不用记,总之这些机制,保证了tcp比较安全稳定,
  • 现在udp基本不用,基本都是用tcp,因为udp不稳定,不安全,
  • 现在访问百度,使用微信,都是tcp协议,
  • 比如买票,如果udp就完了,扣了钱,但是对方没收到,就完了,

tcp客户端,

  • tcp严格区分客户端和服务端,udp是不区分客户端和服务端的
  • 什么是服务器?比如游戏分区,这个就是在选择服务器,
  • 什么是客户端?比如qq就是客户端,手机上的app都是客户端,
  • ----------------------
  • tcp的客户端的创建:
  • 1,创建套接字,
  • 2,建立连接
  • 3,发送数据或者接受数据
  • 4,关闭套接字,

tcp的服务器:

  • 创建tcp的服务器:
  • 1,创建一个套接字,
  • 2,绑定ip和port
  • 3,使套接字变为可以被动连接,
  • 4,等待客户端的连接,
  • 5,接受发送数据,
  • 比如生活中的电话机,
  • 1,买一个手机,创建套接字,
  • 2,插上手机卡,绑定本地信息
  • 3,设计手机为正常接听状态,让默认的套接字由主动变为被动,
  • 4,静静的等别人拨打,等待客户端的链接,
  • 服务器可以为多个客户端服务,

总结:

  • udp和tcp比较
  • tcp客户端和服务端,
  • 的确学习方法不能以视频为主

猜你喜欢

转载自www.cnblogs.com/andy0816/p/12014625.html
今日推荐