服务器端.py
import socket
tcp_socket_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
address = ("", 8888)
tcp_socket_server.bind(address)
tcp_socket_server.listen(128)
while True:
new_socket, addr = tcp_socket_server.accept()
print(str(addr) + "连接此服务端")
recv_data = new_socket.recv(1024)
file_name = recv_data.decode("gbk")
print(file_name)
try:
with open("./server_file/" + file_name, "rb") as f:
while True:
file_data = f.read(1024)
if file_data:
new_socket.send(file_data)
else:
break
except Exception as e:
print("文件%s下载失败" % file_name)
else:
print("文件%s下载成功" % file_name)
finally:
new_socket.close()
tcp_socket_server.close()
客户端.py
import socket
tcp_socket_client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
address = ("192.168.0.8", 8888)
tcp_socket_client.connect(address)
file_name = input("请输入要下载的文件名:")
tcp_socket_client.send(file_name.encode("gbk"))
with open("./" + file_name, "wb") as f:
while True:
file_data = tcp_socket_client.recv(1024)
if file_data:
f.write(file_data)
else:
break
tcp_socket_client.close()