socket模块
2021/11/18 23:43:31
本文主要是介绍socket模块,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
socket模块
HTTP协议 1.四大特性 1.基于请求响应 2.基于TCP/IP作用于应用层之上的协议(OSI七层) 3.无状态 4.无连接/短连接 长链接 websocket 2.数据格式 请求格式 请求头(请求方法) 请求首行(一大堆kv键值对) 请求体(并不是所有的请求都有 携带一些敏感数据) 响应格式 3.响应状态码 用数字来表示一堆中文意思 1XX 2XX 200 3XX 302 304 4XX 403 404 5XX 500 在公司中还会自定义更多的状态码 一般都是以10000起步
服务端
import socket """ 1.必须要有固定的IP和PORT 2.必须能够24小时不间断提供服务 3.能够支持高并发 """ # 1.创建socket对象 server = socket.socket() # 2.绑定IP和PORT server.bind(('127.0.0.1', 8080)) # 3.监听 server.listen(5) # 链接循环 while True: conn, addr = server.accept() # 接收客户端数据 data = conn.recv(1024) # 将data转换成字符串 # 回复HTTP响应格式 conn.send(b'HTTP/1.1 200 OK\r\n\r\n') new_data = data.decode('utf8') res = new_data.split(' ')[1] if res == '/index': conn.send(b'index') # 回复客户端消息 conn.send(b'how are you?') """ b'GET / HTTP/1.1\r\n 请求头 Host: 127.0.0.1:8080\r\n 一堆KV键值对 Connection: keep-alive\r\n sec-ch-ua: "Chromium";v="92", " Not A;Brand";v="99", "Google Chrome";v="92"\r\n sec-ch-ua-mobile: ?0\r\n Upgrade-Insecure-Requests: 1\r\n User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36\r\n Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\r\n Sec-Fetch-Site: none\r\n Sec-Fetch-Mode: navigate\r\n Sec-Fetch-User: ?1\r\n Sec-Fetch-Dest: document\r\n Accept-Encoding: gzip, deflate, br\r\n Accept-Language: zh-CN,zh;q=0.9\r\n Cookie: csrftoken=8EqjbfAEKVeFfdsCzPdBjHHotyBJfuagqFy3rtUjhmXCBArcEB1e3E0MaX1sdFA0\r\n \r\n' 换行 GET请求没有请求体 """
客户端
import socket client = socket.socket() client.connect(('127.0.0.1',8080)) while True: client.send(b'who you are?') res = client.recv(1024) print(res)
这篇关于socket模块的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-27Rocket消息队列学习入门指南
- 2024-11-26Rocket消息中间件教程:新手入门详解
- 2024-11-26RocketMQ项目开发教程:新手入门指南
- 2024-11-26MQ源码教程:轻松入门Apache MQ源码解析
- 2024-11-26Rocket消息队列教程:新手入门必读
- 2024-11-26Rocket消息队列教程:新手入门指南
- 2024-11-26RocketMQ底层原理教程:新手入门指南
- 2024-11-26RocketMQ底层原理教程:入门级详解
- 2024-11-26如何获取 OpenAI API Key 用于ChatGPT AI大模型开发?
- 2024-11-26MATLAB 中 A(7)=[];什么意思?-icode9专业技术文章分享