本文主要是介绍网络编程 5.文件下载 - 服务端,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文件下载 - 服务端
文件位置:G:/PyCharmProject/zero/10.python开发环境
下载位置:C:/Users/lenovo/Desktop
步骤:
1.创建socket
2.绑定端口
3.开始监听
4.等待客户端连接
5.接收客户端发送的数据
6.根据文件名读取文件内容
7.发送文件数据给客户端(循环)
8.关闭和客户端的连接
9.关闭服务端
import socket
# 创建socket
tcp_server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 设置socket地址可重用
tcp_server_socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,True)
# 绑定端口
addr_local = ('',9999)
tcp_server_socket.bind(addr_local)
# 开始监听
tcp_server_socket.listen(128)
# 等待客户端连接
while True:
client_socket,IP_port = tcp_server_socket.accept()
print(f' 客户端 {IP_port} 已连接')
# 接收客户端发送的数据
recv_data = client_socket.recv(1024)
file_name = recv_data.decode()
print(f'要下载的文件为:{file_name}')
# 根据文件名读取文件内容
try:
with open(file_name,'rb') as f :
while True:
send_data = f.read(1024)
if send_data:
# 发送文数据给客户端
client_socket.send(send_data)
else:
break
except Exception as e:
print('下载失败,文件 %s 不存在' % file_name)
else:
print('文件发送完成')
# 关闭和客户端的连接
client_socket.close()
print('已断开与客户端的连接\n')
# 关闭服务端
# tcp_server_socket.close()
这篇关于网络编程 5.文件下载 - 服务端的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!