将目录的内容发送到客户端python

2024-04-20 04:38:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将c:驱动器的内容发送回客户机。我用的是操作系统列表目录()函数生成列表,但当我将其发送回客户端并尝试打印时,我什么也没有得到。我怎样才能打印出我要的清单操作系统列表目录()? 在

这是我的客户代码:

import socket
import sys
import os

HOST = 'localhost' 
PORT = 8082 
size = 1024

def ls():
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
    s.connect((HOST,PORT))
    s.send(userInput)
    result = s.recv(size)
    print result
    s.close()
    return

def put(commandName):
    socket1 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    socket1.connect((HOST, PORT))
    socket1.send(commandName)
    string = commandName.split(' ', 1)
    inputFile = string[1]
    with open(inputFile, 'rb') as file_to_send:
        for data in file_to_send:
            socket1.sendall(data)
    print 'PUT Successful'
    socket1.close()
    return


def get(commandName):
    socket1 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    socket1.connect((HOST, PORT))
    socket1.send(commandName)
    string = commandName.split(' ', 1)
    inputFile = string[1]
    with open(inputFile, 'wb') as file_to_write:
        while True:
            data = socket1.recv(1024)
            print data
            if not data:
                break
            print data
            file_to_write.write(data)
    file_to_write.close()
    print 'GET Successful'
    #socket1.close()
    return

done = False
while not done:
    userInput = raw_input()
    if "quit" == userInput:
        done = True
    elif "ls" == userInput:
       ls()
    else:
        string = userInput.split(' ', 1)
        if (string[0] == 'put'):
            put(userInput)
        elif (string[0] == 'get'):
            get(userInput)
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
    s.connect((HOST,PORT))
    s.send(userInput) 
    data = s.recv(size) 
    s.close() 
    print 'Received:', data'

和服务器代码:

^{pr2}$

Tags: tosendhostclosedatastringportsocket