怎么在python中利用tcp在局域网中传输文件

  介绍

怎么在python中利用tcp在局域网中传输文件?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

<强>功能:

可以利用python创建的tcp客户端从我们自己搭建的tcp服务器上下载文件。

<强>实现需求:

安装插座模块
简单了解sokcet模块用法

服务器代码如下:

import 插座      def  file_deal (file_name):   ,#定义函数用于处理用户索要下载的文件   ,试一试:   ,#二进制方式读?,files 开放(file_name,“rb")=,,mes  files.read ()      ,除了:         ,打印(“没有该文件“)      ,其他的:      ,files.close ()      return  mes      def  main ():   ,#创建套接字=,,tcp_socket  socket.socket (socket.AF_INET, socket.SOCK_STREAM)   ,#固定端口号   ,tcp_socket.bind ((““, 8888))   ,#将主动套接字转为被动套接字   ,tcp_socket.listen (128)      ,while 真正的:   ,#利用接受获取分套接字以及客户端的地址   ,client_socket client_addr =, tcp_socket.accept ()   ,#接收客户端的数据=,,file_name  client_socket.recv (4096)   ,#调用函数处理用户下载的文件=,,mes  file_deal (file_name)      ,if 市场经济地位:   #才能,如果文件不为空发送      client_socket.send才能(mes)   ,#关闭分套接字      ,client_socket.close ()      if  __name__ ==,“__main__":   ,main ()      import 套接字         def  file_deal (file_name):   ,#定义函数用于处理用户索要下载的文件   ,试一试:   ,#二进制方式读?,files 开放(file_name,“rb")=,,mes  files.read ()      ,除了:         ,打印(“没有该文件“)      ,其他的:      ,files.close ()      return  mes      def  main ():   ,#创建套接字=,,tcp_socket  socket.socket (socket.AF_INET, socket.SOCK_STREAM)   ,#固定端口号   ,tcp_socket.bind ((““, 8888))   ,#将主动套接字转为被动套接字   ,tcp_socket.listen (128)      ,while 真正的:   ,#利用接受获取分套接字以及客户端的地址   ,client_socket client_addr =, tcp_socket.accept ()   ,#接收客户端的数据=,,file_name  client_socket.recv (4096)   ,#调用函数处理用户下载的文件=,,mes  file_deal (file_name)      ,if 市场经济地位:   #才能,如果文件不为空发送      client_socket.send才能(mes)   ,#关闭分套接字      ,client_socket.close ()         if  __name__ ==,“__main__":   之前,main ()

客户端代码:

得到socket  import  *   import 操作系统      def  main ():   ,#建立套接字=,tcp_socket 插座(AF_INET, SOCK_STREAM)   ,#接收用输入的服务器端的ip和端口=,tcp_ip 输入(“请输入ip:“)=,int, tcp_port (输入(“请输入端口:“))   ,#连接服务器   ,tcp_socket.connect ((tcp_ip, tcp_port))   ,#输入要下载的文件名=,file_name 输入(“请输入要下载的文件名:“)      ,#将文件名发送至服务器端   ,tcp_socket.send (file_name.encode ())   ,#创建一个空文件=,new_file 开放(file_name,“wb")   ,#用与计算读取的字节数   time =, 0      ,while 真正的:   ,#接收服务器端返回的内容=,,mes  tcp_socket.recv (4096)   ,#如果内容不为空执行   ,if 市场经济地位:   #,才能解码并向文件内写入   new_file.write才能(mes.decode ())      #才能,计算字节   time 才能+=,len (mes)      ,其他的:   #才能,如果字节数为空即未收到内容   if 才能;time ==, 0:   #,才能关闭文件   new_file.close才能()   #,才能删除刚刚创建的文件   os.remove才能(file_name)   打印才能(“没有您要下载的文件“)   其他的才能:   #才能,如过时间有值时的名字文件传输完成   打印才能(“文件下载成功“)      ,打破   ,#关闭套接字   ,tcp_socket.close ()         if  __name__ ==, & # 39; __main__ # 39;:   main ()

看完上述内容,你们掌握怎么在python中利用tcp在局域网中传输文件的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

怎么在python中利用tcp在局域网中传输文件