zoukankan      html  css  js  c++  java
  • socket实现OS的切换目录

    #server层
    #  切换目录
    import socket
    import os
    
    sk = socket.socket()
    sk.bind(('127.0.0.1',8080))
    sk.listen()
    conn,addr = sk.accept()
    
    def send_data(conn,path):
        '''你给我一个目录,我把目录发给client'''
        lis_dir = os.listdir(path)
        str_dir = '--'.join(lis_dir) #将目录列表转换为字符串形式
        conn.send(str_dir.encode('utf-8'))
    
    abs_path = conn.recv(1024).decode('utf-8')# 获取用户输入的绝对路径
    current_dir = abs_path + '/'# 以下再处理,都要根据当前路径去处理,无论是返回上一层,还是进入下一层
    send_data(conn,current_dir)# 把用户输入的路径下的所有文件及文件夹返回给客户端
    
    # C:/Program Files (x86)/Common Files
    while 1:
        cmd = conn.recv(1024).decode('utf-8')
        if cmd == '..':
            current_dir = current_dir.split('/')[:-2]    #-1是去掉转换后列表中的空格,-2是去掉按列表分隔后当前路径,即最后得到的是上一级的目录
            current_dir = '/'.join(current_dir)+'/'        #重新将列表转为字符串形式的当前路径的上一级路径
            # if 如果当前是C盘:
            #     就返回给客户端告诉说没有上一层了!
            send_data(conn, current_dir)
        else:
            filename = cmd.split(' ')[1]# 获取用户输入的文件名字,因为传过来是两个数据cmd和文件名且按空格分隔,所以文件夹需要取到第二个元素
            current_dir += filename + '/'# 将文件名字添加到当前路径下,组成一个完整的新路径
            if os.path.isdir(current_dir):# 如果客户输入的文件名字是一个文件夹
                send_data(conn, current_dir)
            else:# 如果不是一个文件夹
                conn.send(b'不是文件夹')
    # conn.close()
    # sk.close()
    
    
    
    
    #client层
    import socket
    import os
    
    sk = socket.socket()
    sk.connect(('127.0.0.1',8080))
    
    abs_path = input('请输入您的根目录:')
    sk.send(abs_path.encode('utf-8'))
    current_dir = sk.recv(1024).decode('utf-8')
    print(current_dir.split('--'))
    
    while 1:
        cmd = input('请输入>>>')
        # cd + 文件夹      ..
        if cmd == '..':
            sk.send(cmd.encode('utf-8'))
            current_dir = sk.recv(1024).decode('utf-8')
            print(current_dir.split('--'))
        if cmd == 'cd':
            filename = input('请输入一个文件夹名:')
            sk.send((cmd+' '+filename).encode('utf-8'))
            current_dir = sk.recv(1024).decode('utf-8')
            print(current_dir.split('--'))
    、
    sk.close()
  • 相关阅读:
    Springboot单元测试(MockBean||SpyBean)
    使用 Mockito 单元测试 – 教程
    spring结合mockito
    Spatis service单元测试: 使用mock mapper的方式
    单元测试Mockito中的Mock和Spy
    强大的Mockito测试框架
    Mockito单测,mock service层的mapper
    Mockito教程
    SetupFactory 制作安装包
    fiddler的一些记录
  • 原文地址:https://www.cnblogs.com/god-for-speed/p/11719043.html
Copyright © 2011-2022 走看看