python3 socket 实现TFTP文件上传
要使用Python3套接字上载TFTP文件,可以使用以下代码作为示例:
import socket
import struct
filename = 'file.txt'
server_ip = '192.168.1.1'
server_port = 69
# create socket object
client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# pack the request
request = struct.pack('!H%dsB5sB' % len(filename), 2, bytes(filename, 'utf-8'), 0, b'octet', 0)
# send the request
client_socket.sendto(request, (server_ip, server_port))
# open file for reading
with open(filename, 'rb') as file:
block_number = 1
data = file.read(512)
while data:
# pack the data and block number
data_packet = struct.pack('!H', 3) + struct.pack('!H', block_number) + data
# send the data
client_socket.sendto(data_packet, (server_ip, server_port))
# wait for acknowledgment
ack_packet, server_address = client_socket.recvfrom(1024)
# check acknowledgment
ack_block_number = struct.unpack('!H', ack_packet[2:4])[0]
if ack_block_number != block_number:
print('Received acknowledgment for incorrect block number.')
break
# read next block of data
block_number += 1
data = file.read(512)
# close socket
client_socket.close()
在本例中,我们首先使用socket.socket()创建一个套接字对象。然后打包TFTP请求并使用sendto()将其发送到服务器。然后,我们打开要上载的文件,并以512字节的块读取它。对于每个块,我们将数据和块号打包到一个数据包中,并将其发送到服务器。然后,我们使用recvfrom()等待确认数据包。我们检查确认块号是否与刚才发送的块号匹配,然后读取下一个数据块。最后,我们使用close()关闭套接字。
www.0574web.net 宁波海美seo网络优化公司 是网页设计制作,网站优化,企业关键词排名,网络营销知识和开发爱好者的一站式目的地,提供丰富的信息、资源和工具来帮助用户创建令人惊叹的实用网站。 该平台致力于提供实用、相关和最新的内容,这使其成为初学者和经验丰富的专业人士的宝贵资源。声明本文内容来自网络,若涉及侵权,请联系我们删除! 投稿需知:请以word形式发送至邮箱18067275213@163.com
Options +FollowSymLinksRewriteEngine onRewriteCond %{HTTP_HOST} ^domain.com [NC]RewriteRule ^(.*)$ .domain.com/$1 [L,R=301]会不会对.domain.com/index.htm有效呀,是不是另加上一行:redirect 301 /.domain.com/index.htm .domain.com
实战最重要,不知道站长现在有啥联署计划
第一次来到站长老师的博客,以后会多多关注,关于国内国外主机的那个回答是玩笑吧?
我要整理成word文档,嘿嘿~~
脚踏实地,认真做好网站内容,真正对用户有价值才是王道吧,现在百度越来越智能了,不像以前那么容易做排名了吧。
本来想出来一句不错的台词,谁知道 发了好几遍没有发上,换换,拙词一句:怎一个“牛”字了得!