绿色的软件打开就可以使用
打开的界面是这样
指定一个目录 那么这个目录就可以当作服务器来使用
需要注意的: 默认的端口是69 是基于UDP实现的
操作码 | 功能 |
1 | 读请求,即下载 |
2 | 写请求,即上传 |
3 | 表示数据包,即DATA |
4 | 确认码,即ACK |
5 | 错误 |
每次请求服务器,服务器会给响应,再接收到服务器给的响应后,需要告诉服务器,我这边收到了,然后服务器再给发数据,再响应。。
注意 1: 数据包给的块编号是每次响应的,需要即使返回。
2:提交的数字需要转码,不是ASIC码,服务器即使接收到也不能及时响应操作
这里的编码解码 需要用到struct包 这个是模块包 octet 固定的
首先先完成一次的发送和接收
from socket import *
import structdef main(): # 采用socket 来发送接收 uip = ('192.168.119.172', 69) sendData = struct.pack("!H8sb5sb", 1, b"test.jpg", 0, b"octet", 0) st = socket(AF_INET, SOCK_DGRAM) # 发送的内容,等待响应的ip和端口 st.sendto(sendData, uip) # 发送完成查看返回的数据 rdate = st.recvfrom(1024) print(rdate)if __name__ == '__main__': main()
(b'\x00\x03\x00\x01(省略了)。\xf1\x17\x18\x19\x1a&\'()*56789:CDEFGHI', ('192.168.119.172', 63807))
返回的信息就是 操作码加上 块编号和数据 数据的大小是512
操作码 03 块编号是 01