一、web框架

  web框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以快速开发特定的系统。他山之石,可以攻玉。python的所有web框架,都是对socket进行封装的。

  web应用本质上是一个socket服务端,用户的浏览器是一个socket客户端。socket处在应用层与传输层之间,是操作系统中I/O系统的延伸部分(接口),负责系统进程和应用之间的通信。【python网络编程基础】

  上面这个解释看起来有点费劲。重新解释一遍:

  socket是在应用层和传输层之间的一个抽象层,扮演“信使”角色。它把tcp/ip层复杂的操作抽象为几个简单的接口以供应用层调用,从而实现在网络中通信。

  django是python web开发的主流框架,另外还有flask和tensorflow。django框架必须掌握,要学精通。

  web应用的流程:

//浏览器发送一个HTTP请求;
//服务器收到请求,根据请求信息,进行函数处理,生成一个HTML文档;
//服务器把HTML文档作为HTTP响应的Body发送给浏览器;
//浏览器收到HTTP响应,从HTTP Body取出HTML文档并显示;

  回顾一下socket的udp连接和tcp连接,注:查看当前进程和杀死进程的window命令:

    netstat -ano|findstr 45678

    taskkill -PID 45678的进程 -F

  udp客户端和服务端

import socket
# upd链接
# SOCK_DGRAM:数据报套接字,主要用于UDP协议
udpSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# 关闭防火墙
# 同一网段(局域网)下,主机的ip地址和端口号.
sendAddr = ('192.168.10.247', 8080)

# 绑定端口:写的是自己的ip和固定的端口,一般是写在sever端.
udpSocket.bind(('', 9900))

# sendData = bytes(input('请输入要发送的数据:'), 'gbk')
# gbk, utf8, str
sendData = input('请输入要发送的数据:').encode('gbk')

# python3是unicode编码,也就是以unicode格式写成的字节.
# encode,重写编码:就是把unicode环境下的数据,重新编码成指定格式的字节,比如gbk, utf8等.然后接收方以同样的解码格式解码.
# 用网络串口助手作为udp的服务端.网络串口助手是字节和十六进制的字节,没有unicode编码,有gbk编码和utf8编码.所以要解码成gbk
# 反过来,接收数据的时候,也要知道对方发送的数据要怎么解码.

# 使用udp发送数据,每一次发送都需要写上接收方的ip地址和端口号
udpSocket.sendto(sendData, sendAddr)
# udpSocket.sendto(b'hahahaha', ('192.168.10.247', 8080))

udpSocket.close()
udp客户端

相关文章: