DOWN_CLIENT

from socket import *


def main():
    # 创捷套接字
    down_tcp_socket = socket(AF_INET,SOCK_STREAM)
    # 输入服务器 ip,port
    dest_ip = input("请你输入对方服务器的ip: ")
    dest_port = int(input("请你输入对方服务器的端口号: "))

    # 链接对方服务器
    down_tcp_socket.connect((dest_ip,dest_port))

    # 输入要下载的文件名并发送给服务器
    down_file_name = input("请你输入要下载的文件名: ")
    down_tcp_socket.send(down_file_name.encode("gbk"))

    #接受数据 并创建文件
    recv_data = down_tcp_socket.recv(1024*1024)
    
    if recv_data:
        f = open("[接受]"+down_file_name,'wb')
        try:
            f.write(recv_data)
        finally:
            f.close

    
    down_tcp_socket.close()



if __name__ == "__main__":
        main()

DOWN_SERVER

from socket import *

def send_file_client(down_server_socket):
    
    print("------等待链接-----")
    new_socket,client_addr = down_server_socket.accept()

    print("------链接成功-----")
    #接受文件名
    file_name = new_socket.recv(1024).decode("gbk")
    
    print("来自:%s 要下载文件:%s"%(str(client_addr),file_name))
    #打开文件读取并发送
    send_data = None

    try :
        f = open("D:/Vscode/python/SOCKET/"+file_name,'rb')
        send_data = f.read()
        f.close()
    except:
        print("错误!没有这个文件")

    if send_data:
        new_socket.send(send_data)
    
    new_socket.close()


def main():
    # 创建套接字
    down_server_socket = socket(AF_INET,SOCK_STREAM)
    # 绑定端口号
    local = ('',7890)
    down_server_socket.bind((local))
    # listen被动模式
    down_server_socket.listen(128)
    # 等待链接,返回值socket,对方ip

    #调用函数发送文件
    send_file_client(down_server_socket)

    # 关闭套接字
    down_server_socket.close()



if __name__ == "__main__":
    main()

最后修改日期:2020年3月7日

作者