Python网络编程之使用TCP方式传输文件操作示例
本文实例讲述了Python网络编程之使用TCP方式传输文件操作。分享给大家供大家参考,具体如下:
TCP文件下载器
客户端
需求:输入要下载的文件名,从服务器端将文件拷贝到本地
步骤:
1.创建TCP套接字,绑定端口
2.连接服务端
3.输入要下载的文件名
4.将文件名编码,并发送到服务端
5.接收服务端返回的数据
6.关闭套接字
代码
#导入模块 importsocket #创建套接字 tcp_client_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM) #绑定端口 tcp_client_socket.bind(("",8080)) #连接IP地址和端口 tcp_client_socket.connect(("192.168.43.216",8080)) file_name=input("请输入要下载的文件:\n") #文件名编码 tcp_client_socket.send(file_name.encode()) try: #文件传输 withopen("C:/Users/Administrator/Desktop/"+file_name,"wb")asfile: whileTrue: #接收数据 file_data=tcp_client_socket.recv(1024) #数据长度不为0写入文件 iffile_data: file.write(file_data) #数据长度为0表示下载完成 else: break #下载出现异常时捕获异常 exceptExceptionase: print("下载异常",e) #无异常则下载成功 else: print(file_name,"下载成功") #关闭客户端 tcp_client_socket.close()
服务端
需求:接收客户端发送的文件名,将文件传输给客户端
步骤:
1.创建TCP套接字,绑定端口
2.设置监听
3.接收客户端传输的文件名信息并解码
4.将文件发送到客户端
5.关闭客户端套接字(断开连接)
代码
#导入模块 importsocket #创建tcp服务端socket tcp_server_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM) #绑定端口 tcp_server_socket.bind(("",8080)) #设置监听,把服务端socket由主动套接字改成被动套接字,只能接收客户端的连接请求 tcp_server_socket.listen(128) whileTrue: #接收客户端信息 client_socket,client_ip=tcp_server_socket.accept() print("客户端:",client_ip,"连接") #接收下载信息 file_name_data=client_socket.recv(1024) #解码下载信息 file_name=file_name_data.decode() try: #数据传输 withopen("/home/python/Desktop/"+file_name,"rb")asfile: whileTrue: #读取文件数据 file_data=file.read(1024) #数据长度不为0表示还有数据没有写入 iffile_data: client_socket.send(file_data) #数据为0表示传输完成 else: print(file_name,"传输成功") break exceptExceptionase: print("传输异常:",e) #关闭客户端连接 client_socket.close()
测试
客户端请求
服务器响应
客户端接收
更多关于Python相关内容可查看本站专题:《PythonSocket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。