python 简单文件下载器实现
文件下载器实现模型
服务器端实现
import socket
import sys
def readinfo(file_name):
try:
read=open(file_name,"rb")
content=read.read()
return content
except Exception as e:
print(e)
return e
else:
pass
finally:
pass
def main():
TCP_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
TCP_socket.bind(("",9090))
TCP_socket.listen(128)
while True:
client_socket= TCP_socket.accept()
print(client_socket)
clientAddr=client_socket[1]
client_socket=client_socket[0]
recv_data=client_socket.recv(1024)
file_name=recv_data.decode("utf-8")
print("对⽅请求下载的⽂件名为:%s" % file_name)
if file_name=="exit":
print("退出")
break
content=str(readinfo(file_name))
client_socket.send(content.encode("utf-8"))
print("发送完毕")
client_socket.close()
TCP_socket.close()
print("服务器关闭")
main()
客户端实现
import socket
import sys
def main():
tcp_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server_ip=input("IP:")
server_port=int(input("port:"))
tcp_socket.connect((server_ip,server_port))
while True:
flie_name=input("请输⼊要下载的⽂件名:")
tcp_socket.send(flie_name.encode("utf-8"))
if flie_name=="exit":
break
recv_data=tcp_socket.recv(1024)
print(recv_data)
if recv_data:
recv=open("[接收]"+flie_name,"wb")
recv.write(recv_data)
tcp_socket.close()
print("客户端关闭")
main()