python3 socket 實(shí)現(xiàn)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()創(chuàng)建一個(gè)套接字對(duì)象。然后打包TFTP請(qǐng)求并使用sendto()將其發(fā)送到服務(wù)器。然后,我們打開(kāi)要上載的文件,并以512字節(jié)的塊讀取它。對(duì)于每個(gè)塊,我們將數(shù)據(jù)和塊號(hào)打包到一個(gè)數(shù)據(jù)包中,并將其發(fā)送到服務(wù)器。然后,我們使用recvfrom()等待確認(rèn)數(shù)據(jù)包。我們檢查確認(rèn)塊號(hào)是否與剛才發(fā)送的塊號(hào)匹配,然后讀取下一個(gè)數(shù)據(jù)塊。最后,我們使用close()關(guān)閉套接字。
www.yinyiprinting.cn 寧波海美seo網(wǎng)絡(luò)優(yōu)化公司 是網(wǎng)頁(yè)設(shè)計(jì)制作,網(wǎng)站優(yōu)化,企業(yè)關(guān)鍵詞排名,網(wǎng)絡(luò)營(yíng)銷知識(shí)和開(kāi)發(fā)愛(ài)好者的一站式目的地,提供豐富的信息、資源和工具來(lái)幫助用戶創(chuàng)建令人驚嘆的實(shí)用網(wǎng)站。 該平臺(tái)致力于提供實(shí)用、相關(guān)和最新的內(nèi)容,這使其成為初學(xué)者和經(jīng)驗(yàn)豐富的專業(yè)人士的寶貴資源。聲明本文內(nèi)容來(lái)自網(wǎng)絡(luò),若涉及侵權(quán),請(qǐng)聯(lián)系我們刪除! 投稿需知:請(qǐng)以word形式發(fā)送至郵箱18067275213@163.com
Options +FollowSymLinksRewriteEngine onRewriteCond %{HTTP_HOST} ^domain.com [NC]RewriteRule ^(.*)$ .domain.com/$1 [L,R=301]會(huì)不會(huì)對(duì).domain.com/index.htm有效呀,是不是另加上一行:redirect 301 /.domain.com/index.htm .domain.com