客户端
import socket
import os
def main():
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# send_ip = input('请输入目的ip:')
# send_port = int(input('请输入目的端口:'))
file_name = input('请输入要下载的文件:')
# client_socket.connect((send_ip, send_port))
client_socket.connect(('', 7788))
client_socket.send(file_name.encode())
f = open('new'+file_name, 'wb')
recv_len = 0
while True:
recv_data = client_socket.recv(1024)
if recv_data:
f.write(recv_data)
recv_len += len(recv_data)
else:
if recv_len:
f.close()
client_socket.close()
print('文件下载成功')
else:
os.remove('new'+file_name)
print('文件不存在!')
break
client_socket.close()
if __name__ == '__main__':
main()
服务端
import socket
def read_file_data(file_name):
try:
f = open(file_name, 'rb')
except Exception as e:
print('文件不存在')
else:
file_data = f.read()
return file_name
def main():
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('', 7788))
server_socket.listen(128)
while True:
client_socket, client_addr = server_socket.accept()
print('接收来自%s的连接>>' % str(client_addr))
file_name = client_socket.recv(1024)
data = read_file_data(file_name)
if data:
client_socket.send(data)
client_socket.close()
server_socket.close()
if __name__ == '__main__':
main()