Python的网络编程[5] -> BOOTP + TFTP + FTP -> 实现一个简单的文件传输流程
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python的网络编程[5] -> BOOTP + TFTP + FTP -> 实现一个简单的文件传输流程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2451字,纯文字阅读大概需要4分钟。
内容图文
BOOTP-TFTP-FTP
目录
- 文件传输流程
- 服务器建立过程
- 客户端建立过程
1 文件传输流程 / File Transfer Flow
利用BOOTP,TFTP,FTP三种传输协议,建立起客户端和服务器,实现一个简单的文件传输流程。
- Server初始化运行,开启3个线程,分别运行BOOTP,TFTP,FTP的服务器,进行监听等待;
- Client发起BOOTP广播,请求响应,在收到服务器响应后,根据回传的ip和文件名,启动TFTP,发起RRQ文件下载,等待文件传输完成,Client继续利用BOOTP发起广播,并根据回传信息启动TFTP(此处利用BOOTP传送的IP作为连接TFTP的IP),直至BOOTP广播无响应(超时),则结束BOOTP及TFTP;
- 根据TFTP下载的文件,读取其中需要下载的文件内容,利用FTP客户端发起登录,请求下载对应文件,直至FTP文件下载完成,退出FTP及客户端。
Note: 三种传输协议的实现过程可参考文末的相关阅读,部分内容如文件路径和文件名等均为硬编码,后续可做修改。
2 服务器建立过程 / Server Setup
服务器建立步骤主要有:
(1) 实例化BOOTP,TFTP,FTP三个服务器;
(2) 开启三个线程,分别运行服务器并监听等待。
1 from BOOTP.BOOTPServer import BOOTPServer 2from TFTP.TFTPServer import TFTPServer 3from FTP.FTPServer import FTP_Server 4 5class CommuniDemoServer(): 6def__init__(self): 7 self.bootp = BOOTPServer() 8 self.tftp = TFTPServer() 9 self.ftp = FTP_Server() 1011def server_start(self): 12 self.bootp.start() 13 self.tftp.start() 14 self.ftp.start() 1516 server = CommuniDemoServer() 17 server.server_start()
3 客户端器建立过程 / Client Setup
客户端建立步骤主要有:
(1) 实例化BOOTP,TFTP,FTP三个服务器;
(2) 建立循环,开启BOOTP广播,等待报文获取ip及文件名,开启TFTP下载对应文件。完成后继续广播请求,直至广播无回应;
(3) 打开TFTP下载的文件,获取需要下载的文件名,开启FTP进行下载。下载完成后结束FTP。
1 from BOOTP.BOOTPClient import BOOTPClient 2from TFTP.TFTPClient import TFTPClient 3from FTP.FTPClient import FTP_Client 4 5class CommuniDemoClient(): 6def__init__(self): 7 self.bootp = BOOTPClient() 8 self.tftp = TFTPClient() 9 self.ftp = FTP_Client() 1011def action(self): 12while True: 13 recv = self.bootp.client_request() 14if recv is None: 15print(‘=== [BOOTP and FTTP] Action done‘) 16break17 self.tftp.server_ip = recv[0] 18 self.tftp.readRequest(recv[1]) 19 self.ftp.download([‘etsw.b3‘]) 20 file_list = [] 21try: 22 with open(‘TFTP\\TFTPClientFile\\copy-files4.rc‘) as f: 23 info_line = None 24while info_line != ‘‘: 25 info_line = f.readline() 26 info = info_line.strip(‘\n‘).split(‘:‘) 27if info != [‘‘] and info != [‘‘]: 28 file_name = info[1] 29if file_name != ‘‘and file_name != ‘‘: 30 file_list.append(file_name.strip(‘‘)) 31except FileNotFoundError: 32print(‘=== [FTP] Download file no found‘) 33 exit() 34 self.ftp.download(file_list) 35print(‘=== [FTP] Exit‘) 3637 client = CommuniDemoClient() 38 client.action()
相关阅读
1. BOOTP 理论
3. TFTP 理论
5. FTP 理论
+ TFTP + FTP -> 实现一个简单的文件传输流程' ref='nofollow'>Python的网络编程[5] -> BOOTP + TFTP + FTP -> 实现一个简单的文件传输流程
原文:https://www.cnblogs.com/stacklike/p/8149927.html
内容总结
以上是互联网集市为您收集整理的Python的网络编程[5] -> BOOTP + TFTP + FTP -> 实现一个简单的文件传输流程全部内容,希望文章能够帮你解决Python的网络编程[5] -> BOOTP + TFTP + FTP -> 实现一个简单的文件传输流程所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。