服务器端.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()