龙空技术网

Python网络编程之使用TCP方式传输文件操作示例

Python骇客 90

前言:

而今同学们对“python 传输”大约比较关切,看官们都想要学习一些“python 传输”的相关资讯。那么小编也在网摘上搜集了一些对于“python 传输””的相关文章,希望各位老铁们能喜欢,大家一起来了解一下吧!

TCP文件下载器

客户端

需求:输入要下载的文件名,从服务器端将文件拷贝到本地

步骤:

创建TCP套接字,绑定端口连接服务端输入要下载的文件名将文件名编码,并发送到服务端接收服务端返回的数据关闭套接字

代码

# 导入模块import socket# 创建套接字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: # 文件传输 with open("C:/Users/Administrator/Desktop/" + file_name, "wb") as file: while True: # 接收数据 file_data = tcp_client_socket.recv(1024) # 数据长度不为0写入文件 if file_data: file.write(file_data) # 数据长度为0表示下载完成 else: break# 下载出现异常时捕获异常except Exception as e: print("下载异常", e)# 无异常则下载成功else: print(file_name, "下载成功")# 关闭客户端tcp_client_socket.close()
嗨喽:正在学习python的小伙伴或者打算学习的,可以私信小编“01”领取资料!了解跟多赚钱小方法!服务端

需求:接收客户端发送的文件名,将文件传输给客户端

步骤:

创建TCP套接字,绑定端口设置监听接收客户端传输的文件名信息并解码将文件发送到客户端关闭客户端套接字(断开连接)

代码

# 导入模块import socket# 创建tcp服务端sockettcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 绑定端口tcp_server_socket.bind(("", 8080))# 设置监听,把服务端socket由主动套接字改成被动套接字,只能接收客户端的连接请求tcp_server_socket.listen(128)while True: # 接收客户端信息 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: # 数据传输 with open("/home/python/Desktop/" + file_name, "rb") as file: while True: # 读取文件数据 file_data = file.read(1024) # 数据长度不为0表示还有数据没有写入 if file_data: client_socket.send(file_data) # 数据为0表示传输完成 else: print(file_name, "传输成功") break except Exception as e: print("传输异常:", e) # 关闭客户端连接 client_socket.close()

测试

客户端请求

服务器响应

客户端接收

最后多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以关注小编,并在后台私信小编:“01”即可领取

标签: #python 传输 #pythontcprecv