切换目录查询目录 tcp

服务器

import socket
import os
import json
sk = socket.socket()

sk.bind(('127.0.0.1',8080))
sk.listen()
conn,addr = sk.accept()

def show_dir(conn,path):
    return os.listdir(path=path)

def return_res(conn,current_path):
    res = show_dir(conn,current_path)
    show_res = '--'.join(res)
    conn.send(show_res.encode('utf-8'))

abs_path = conn.recv(1024).decode('utf-8')
current_path = abs_path
return_res(conn,current_path)

while 1:
    dic_str = conn.recv(1024).decode('utf-8')
    dic = json.loads(dic_str)
    if dic['opt'] == 'cd':
        current_path = current_path + '/' + dic['filename']
        if os.path.isdir(current_path):
            return_res(conn,current_path)
        else:
            conn.send('该文件不是文件夹,请重新输入!')
            continue
    if dic['opt'] == '..':
        l = current_path.split('/')
        l.pop()
        current_path = '/'.join(l)
        return_res(conn,current_path+'/')

conn.close()
sk.close()


客户端 

import socket
import json
sk = socket.socket()

sk.connect(('127.0.0.1',8080))

dirs = input('请输入当前目录绝对路径>>>')
sk.send(dirs.encode('utf-8'))
print(sk.recv(1024).decode('utf-8').split('--'))

dic = {'opt':None,'filename':None}

while 1:
    cmd = input('请输入命令操作>>>')
    dic['opt'] = cmd
    if cmd == 'cd':
        dic['filename'] = input('请输入要查看的文件夹名>>>')
    dic_str = json.dumps(dic)
    sk.send(dic_str.encode('utf-8'))
    print(sk.recv(1024).decode('utf-8').split('--'))

sk.close()

  

原文地址:https://www.cnblogs.com/liuafan/p/9368062.html