学无止境

少年辛苦终身事,莫向光阴惰寸功。——唐·杜荀鹤《题弟侄书堂》


网络概念与UDP编程

什么网络通信


  • 网络的定义
  • 在电的系统中,由若干元件组成的用来使电信号按一定要求传输的电路或这种电路的部分,叫网络。
  • 现在一般指“三网”:电信网络、有线电视网络、计算机网络。狭义的含义即因特网。抽象意义上的网络。比如城市网络、交通网络、交际网络等。
  • ⽹际层也称为:⽹络层
  • ⽹络接⼝层也称为:链路层

  • 端口


  • python2 中开启端口
  • python -m SimpleHTTPServer 8080
  • 浏览器打开访问
  • http://127.0.0.1:8080
  • 127.0.0.1永远是本机地址

sockt简介


  • 本地的进程间通信的方式

  • sockt简称套接字
  • 创建sockt
  • import socket
    
  • socket.socket(socket.AF_UNIX)
    
  • ==UNIX:同一台电脑见的通信==
  • socket.AF_INET:互联网
  • sovket.SOCK_DGRAM(Dategram/数据报)—>UDP
  • socket.SOCK_STREAM—-》TCP

  • udp


  • udp=—用户数据包协议,是一个无连接的简单的面向数据包的传输层协议
  • 创建一个套接字
  • udp_socket = socket(AF_INET,SOCK_DGRAM)
  • 绑定目标主机
  • send_address = (“目标主机ip”,目标端口)
  • b解码2进制
  • encode()解码utf-8或者gb2312
  • 套接字.sendo(内容.encode(“utf-8或者gb2312”),目标主机)
  • close()关闭
  • udp特点
  • UDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。
  • UDP传输数据时有大小限制,每个被传输的数据报必须限定在64KB之内。
  • UDP是一个不可靠的协议,发送方所发送的数据报并不一定以相同的次序到达接收方。

  • udp网络程序-端口会变化


  • 端口号会变化
  • 个网络程序在运行的过程中,这个就唯一标识这个程序,所以如果其他电脑上的网络程序如果想要向此程序发送数据,那么就需要向这个数字(即端口)标识的程序发送即可。
  • 同一个端口不能被两个软件同时使用,否则会有问题。

udp绑定端口信息


  • 为什么要绑定端口
  • 百度默认绑定的是80www.baidu.com:80
  • 分别在发送方和接收方绑定端口

  • ==发送方绑定端口,第一个参数写"",==
  • recv_message = cok.recvfrom(1024)接受书库,1024代表本次接受的最大字节数
  • recv_message是个元组(数据,IP地址端口号)
  • 所以取得时候要取0位置的然后进行解码decode()

udp网络程序–发送、接收数据


  • 单工(相当于收广播)、半双工(相当于对讲机)、全双工(相当于电话)
  • 单工数据传输只支持数据在一个方向上传输;
  • 半双工数据传输允许数据在两个方向上传输,但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信;
  • 全双工数据通信允许数据同时在两个方向上传输,因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。
  • decode解码
    
  • encode编码