介绍
怎么在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在局域网中传输文件