文章目录
1.服务端主机搭建TCP服务2.客户端通过FTP链接访问服务端的文件3.python实现客户端从服务端下载数据1.服务端主机搭建TCP服务
右键我的电脑——选择管理——右键用户——选择新建用户
创建完TCP用户后
打开控制面板——选择程序——启动或关闭windows功能——启动Internet Information Services
正在启动中……
启动IIS后重新打开计算机管理,会多出一个IIS管理器
服务端的TCP服务部署完成!
2.客户端通过FTP链接访问服务端的文件
现在我们在局域网内换一台主机(客户端),在浏览器中进行访问以下地址即可访问到服务端的TCP服务。
3.python实现客户端从服务端下载数据
若我们需要批量下载或上传数据等操作,可用Python的ftplib包实现
#!/usr/bin/python# coding=utf-8import osfrom ftplib import FTP # 引入ftp模块import loggingclass MyFtp:ftp = FTP()def __init__(self,host,port=21,timeout=10):try:self.ftp.connect(host,port,timeout)print('ftp connect success!')except:logging.warning('network connect time out')def login(self,username,pwd):#self.ftp.set_debuglevel(2) # 打开调试级别2,显示详细信息try:self.ftp.login(username,pwd)self.ftp_root = self.ftp.pwd()print('ftp login success!')except:logging.warning('username or password error')def downloadFile(self,srcpath,dstpath):srcDir, srcFileName = os.path.split(srcpath)dstDir, dstFileName = os.path.split(dstpath)os.chdir(dstDir) # 切换工作路径到下载目录print(srcDir)# 每次需要先切换到根目录 因为srcDir是相对路径 之前在之前的路径下切换会找不到路径self.ftp.cwd(self.ftp_root) try:self.ftp.cwd(srcDir) # 要登录的ftp目录except:with open('log.txt', 'a') as f:f.write('{} ftp.cwd err'.format(srcpath))return# self.ftp.cwd(srcDir) # 要登录的ftp目录self.ftp.nlst() # 获取目录下的文件file_handle = open(dstpath,"wb").write # 以写模式在本地打开文件self.ftp.retrbinary('RETR %s' % srcFileName,file_handle,blocksize=1024) # 下载ftp文件def close(self):#self.ftp.set_debuglevel(0) # 关闭调试self.ftp.quit()if __name__ == '__main__':ftp = MyFtp('172.16.7.127')ftp.login('','') # 输入账号密码root = ['./tcp_test/0001/aaa.txt','./tcp_test/0002/bbb.txt']for i in root:dstroot,dstimg = os.path.split(i)ftp.downloadFile(i,os.path.join('D:/code/getDataFromDB',dstimg))ftp.close()
这是运行结果:
文件已经从服务端下载到客户端的制定路径了