part 1 网络通信
socket套接字:指的就是通过代码来创建实现通信的两个端(服务器和客户端)
socket一般可以基于TCP/UDP实现客户端和服务器之间的可靠传输和不可靠传输
python中内置模块socket可以支持socket编程。
import socket
#通过socket实现服务器端
#1.创建服务器套接字对象
#server = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM)#AF_INET: IPV4 ,AF_INET6:IPV6
#type确定传输协议类型
server = socket.socket()
#2.绑定ip地址和端口(地址格式:ip地址字符串,端口号:区分计算机不同服务,范围是0-65535,注意其中,0-1024是‘著名’端口)
#用来绑定特殊服务。一般不使用。同一时间一个端口只能绑定一个服务
server.bind(('10.7.181.55', 1080))
#监听请求
#必须传参:用来限制一次性能够接收的客户端排队请求的数量,最多512
server.listen(50)
#保证服务器处于一直启动的状态
while True:
#接收客户端的请求
"""accept()会阻塞线程,到有客户端给这个服务器发送请求
"""
client, addr = server.accept()
print(addr)
#5.给客户端发生消息
"""send(数据):类型必须是二进制数据bytes类型
"""
#
client.send(bytes('你谁啊', encoding='utf-8'))
#client.recv('谁啊'.encode(encoding='utf-8'))
"""设置缓存大小(单位是字节)
二进制转换成字符串(bytes)
data = client
a.str(二进制数据,encoding='utf-8)
b.str1 = data.decode(encoding='utf--8')
"""
data = client.recv(1024)
#关闭链接
client.close()
part 2 套接字
import socket
#1.创建套接字对象
client = socket.socket()
#2.连接服务器
client.connect(('10.7.181.55'),1080)
#3.接受信息
data = client.recv(1024)
print('接收到服务器的数据源:', data.decode(encoding='utf-8'))
#4.发送信息
str1 = input('输入')
client.send(str1.encode(encoding='utf-8'))
part 3 客户端
import socket
#1创建套接字对象
client = socket.socket()
#2连接服务器
client.connect(('10.7.181.108', 1111))
data = client.recv(1024)
data_all = bytes()
while data:
data_all += data
with open('./bbb.png','wb') as f:
f.write(data_all)
message = input('>>>')
client.send(message.encode())
part 4 http
import json
from requests import request
#https://www.apiopen.top/satinApi?type=1&page=1
#1.确定url
#get请求参数以?号的形式拼接到url地址后面,参数名=值的形式多个参数用&隔开
url = 'https://www.apiopen.top/satinApi?type=1&page=1'
#2.发送请求
response = request('GET', url)
text = response.text
print(response.text)
#以json的形式获取相应体
json = response.json()
print(json)
#以二进制的形式获取响应体
content = response.content
print(content)
网友评论