亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

python實現簡單tftp(基于udp協議)

2020-02-15 22:36:23
字體:
來源:轉載
供稿:網友

本文實例為大家分享了python實現簡單tftp的具體代碼,供大家參考,具體內容如下

tftp是基于udp的協議 實現簡單的tftp,首先要有tftp的協議圖。 tftp默認接收端口為69,但每次有連接過來后,tftp會隨機分配一個端口來專門為這個連接來服務。 操作碼:1.上傳 2.下載 3.傳數據 4.接收確認 5.錯誤碼

tftp服務器簡單實現:

from threading import Threadfrom socket import *import structdef upload(filename,user_ip,user_port): num = 0 f = open(filename,'ab')  s_up = socket(AF_INET,SOCK_DGRAM) send_data_1 = struct.pack("!HH",4,num) s_up.sendto(send_data_1,(user_ip,user_port)) #第一次用隨機端口發送 while True:  recv_data,user_info = s_up.recvfrom(1024) #第二次客戶連接我隨機端口  caozuohao_up,ack_num = struct.unpack('!HH',recv_data[:4])  print(caozuohao_up,ack_num,num)  if int(caozuohao_up) == 3 and ack_num == num :   f.write(recv_data[4:])   send_data = struct.pack("!HH",4,num)   s_up.sendto(send_data,(user_ip,user_port)) #第二次我用隨機端口發   num = num + 1   if len(recv_data) < 516:    print(user_ip+'上傳文件'+filename+':完成')    f.close()    exit()  def download(filename,user_ip,user_port): s_down = socket(AF_INET, SOCK_DGRAM) num = 0 try:  f = open(filename,'rb') except:  error_data = struct.pack('!HHHb',5,5,5,num)  s_down.sendto(error_data, (user_ip,user_port)) #文件不存在時發送  exit() #只會退出此線程 while True:  read_data = f.read(512)  send_data = struct.pack('!HH',3,num) + read_data  s_down.sendto(send_data, (user_ip,user_port)) #數據第一次發送  if len(read_data) < 512:   print('傳輸完成, 對方下載成功')   exit()    recv_ack = s_down.recv(1024) #第二次接收  caozuoma,ack_num = struct.unpack("!HH", recv_ack)#  print(caozuoma,ack_num,len(read_data))  num += 1  if int(caozuoma) != 4 or int(ack_num) != num-1 :   exit() f.close()s = socket(AF_INET,SOCK_DGRAM)s.bind(('',69))def main(): while 1:  recv_data,(user_ip,user_port) = s.recvfrom(1024) #第一次客戶連接69端口  print(recv_data, user_ip, user_port)  if struct.unpack('!b5sb',recv_data[-7:]) == (0, b'octet', 0):   caozuoma = struct.unpack('!H',recv_data[:2])   filename = recv_data[2:-7].decode('gb2312')   if caozuoma[0] == 1:    print('對方想下載數據',filename)    t = Thread(target = download, args = (filename,user_ip,user_port))     t.start()      elif caozuoma[0] == 2:    print('對方想上傳數據',filename)    t = Thread(target = upload, args = (filename,user_ip,user_port))     t.start()   if __name__ == '__main__': main()

上傳數據簡單實現:

#!/usr/bin/env python3#coding=utf-8import structfrom socket import *server_ip = '192.168.119.157'send_data_1 = struct.pack('!H8sb5sb',2,'王輝.jpg'.encode('gb2312'),0,b'octet',0)s = socket(AF_INET,SOCK_DGRAM)s.sendto(send_data_1,(server_ip,69)) #第一次發給服務器69端口f = open('王輝.jpg','rb')recv_data = s.recvfrom(1024) #第一次接收數據rand_port = recv_data[1][1]print()ack_num = struct.unpack("!HH",recv_data[0][:4])num = 0while True: read_data = f.read(512) send_data = struct.pack('!HH',3,num) + read_data s.sendto(send_data,(server_ip,rand_port)) #第二次發給服務器的隨機端口 recv_data_2,userinfo = s.recvfrom(1024) print(recv_data_2) ack_num = struct.unpack('!H',recv_data_2[2:4]) print(len(read_data),num,ack_num[0],rand_port) if len(read_data) < 512 or ack_num[0] != num :  break num = num + 1            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美制服中文字幕| 亚洲男人天堂手机在线| 色999日韩欧美国产| 深夜成人在线观看| 日韩在线观看视频免费| 国产精品电影在线观看| 国产精品人成电影| 亚洲男人天堂手机在线| 亚洲精品成人久久电影| 国产精品一区二区久久精品| 国产精品人人做人人爽| 欧美乱妇高清无乱码| 国产精品96久久久久久| 8090成年在线看片午夜| 国产91免费观看| 日韩av在线天堂网| 日韩中文字幕免费看| 国产91精品视频在线观看| 欧日韩不卡在线视频| 欧美性感美女h网站在线观看免费| 欧美国产激情18| 国产日韩在线免费| 91在线免费视频| 亚洲精品一区二区网址| 欧洲永久精品大片ww免费漫画| 中文字幕av一区中文字幕天堂| 成人乱色短篇合集| 欧美激情精品久久久久| 日韩美女av在线免费观看| 92国产精品久久久久首页| 国产91精品高潮白浆喷水| 亚洲毛茸茸少妇高潮呻吟| 久久91亚洲精品中文字幕| 青青在线视频一区二区三区| 国产成人福利夜色影视| 在线观看欧美成人| 午夜伦理精品一区| 国产精品高清在线观看| 国产精品丝袜久久久久久不卡| 亚洲第一视频在线观看| 日韩精品在线免费观看| 成人亚洲欧美一区二区三区| 国内精品模特av私拍在线观看| 国产精品入口日韩视频大尺度| 国产精品极品尤物在线观看| 亚洲成人亚洲激情| 精品国产欧美一区二区三区成人| 亚洲japanese制服美女| 久久久久久久91| 色yeye香蕉凹凸一区二区av| 中文字幕精品在线视频| 精品人伦一区二区三区蜜桃网站| 亚洲人成网站免费播放| 亚洲欧美国产精品久久久久久久| 久久成人综合视频| 国产精品久久久久久影视| 亚洲精品视频在线观看视频| 日韩人在线观看| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲国产精品久久久久久| 亚洲成人网久久久| 一区二区三区天堂av| 久久久av网站| 久热精品视频在线免费观看| 久久久在线观看| 久久久久久久久久久免费| 国产亚洲视频中文字幕视频| 欧美日韩国产精品专区| 亚洲视频在线免费看| 国产精品美女主播| 伊人青青综合网站| 综合国产在线视频| 这里精品视频免费| 亚洲视频免费一区| 日韩中文字幕在线视频播放| 亚洲91av视频| 国产视频在线观看一区二区| 国产成人在线精品| 国产日韩av在线播放| 国产人妖伪娘一区91| 国产精品久久久久久一区二区| 日韩免费观看视频| 爱福利视频一区| 九九精品视频在线观看| 亚洲精品狠狠操| 久久久999精品免费| 人人澡人人澡人人看欧美| 琪琪亚洲精品午夜在线| 成人福利在线视频| 亚州欧美日韩中文视频| 亚洲国产中文字幕在线观看| 亚洲人成77777在线观看网| 欧美视频第一页| 国产女精品视频网站免费| 少妇高潮 亚洲精品| 91免费视频网站| 福利二区91精品bt7086| 久久久噜噜噜久噜久久| 国产免费久久av| 亚洲国产成人91精品| 久久精品国产清自在天天线| 欧美午夜影院在线视频| 欧美性猛交xxxx乱大交3| 国产97色在线|日韩| 久久久久久久国产精品视频| 亚洲国产精品久久久久久| 亚洲欧美国产精品| 色噜噜狠狠狠综合曰曰曰88av| 91视频8mav| 亚洲男人天堂2019| 91高清免费视频| 7777免费精品视频| 国产精品日韩在线观看| 欧美在线观看一区二区三区| 亚洲视频一区二区三区| 国产综合久久久久久| 亚洲最新在线视频| 久久99视频精品| 黑人精品xxx一区一二区| 国产精品视频久久久| 欧美黄色片免费观看| 国产精品欧美久久久| 欧美极品少妇全裸体| 国产一区二区三区在线视频| 国产精品直播网红| 中文字幕日韩精品在线观看| 欧美中文字幕视频在线观看| 久久91超碰青草是什么| 亚洲第一在线视频| 在线日韩日本国产亚洲| 亚洲精品国产精品乱码不99按摩| 精品国产电影一区| 97婷婷大伊香蕉精品视频| 在线电影中文日韩| 国产欧美精品在线| 久久久久亚洲精品| 久久久久久久久中文字幕| 欧美激情久久久久久| 中文字幕9999| 亚洲精品之草原avav久久| 91黑丝在线观看| 日日狠狠久久偷偷四色综合免费| 91网在线免费观看| 国产极品jizzhd欧美| 亚洲欧美日韩精品久久| 欧美激情videoshd| 狠狠躁夜夜躁人人躁婷婷91| 精品亚洲男同gayvideo网站| 欧美激情高清视频| 亚洲欧美日本精品| 久久91精品国产91久久久| 日本欧美爱爱爱| 成人精品网站在线观看| 亚洲社区在线观看| 成人欧美在线观看| 国产97在线亚洲| 在线观看久久久久久| 久久综合久久美利坚合众国| 欧美美女15p| 欧美在线视频观看免费网站| 亚洲一区中文字幕在线观看| 日韩电影网在线| 国产亚洲精品高潮| 国产精品久久久久久久app|