type
status
date
slug
tags
category
summary
icon
password
sourceUrl
Property
Created time
Aug 13, 2024 07:09 AM
本代码运行环境:python3 + Ubuntu16
1:运行代码前需要运行tftp服务器端,把要上传的文件放在和执行文件同一个文件夹里2:tftp服务器端ip要和ubuntu ip在同一网段

粗糙的实现代码如下:
from socket import *
import struct
import sys
# 命令行传入参数
if len(sys.argv) != 2:
print('-'*30)
print('Run tips:')
print('python3 filename.py destination_ip')
print('-'*30)
else:
ip = sys.argv[1]
tftp_upload = socket(AF_INET, SOCK_DGRAM)
# 构建数据包
u_pack = struct.pack("!H15sb5sb", 2, b'test_upload.jpg', 0, b'octet', 0)
address_ip_bind = (ip, 69)
tftp_upload.sendto(u_pack, address_ip_bind)
num = 0
# 以二进制读的模式打开文件
send_data = open('test_upload.jpg', 'rb')
while True:
data_information, data_address = tftp_upload.recvfrom(1024)
# 拆数据包
data_unpack = struct.unpack("!HH", data_information[:4])
# 操作码
data_ack = data_unpack[0]
# 块编号
data_num = data_unpack[1]
tftp_upload.close()
send_data.close()
- 作者:学长的猫
- 链接:https://gpt123.eu.org/article/2490
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。