python Socketを利用してFTPのようなスクリプトを書きます(ダウンロードだけ書いて、アップロードとダウンロードの差が少なくて多く書きません)


Socketの紹介は多くなくて、ネット上ですべて探し当てることができて、直接スクリプトを言って、FTPの機能を実現するにはサーバー側とクライアントが必要です.
サーバ側:
import SocketServer
import commands
import time

class MySockServer(SocketServer.BaseRequestHandler):
    def handle(self):
        print "Got a new conn from", self.client_address
        while True:
            cmd = self.request.recv(1024)
            if not cmd:break
            cmd = cmd.split()
            if cmd[0] =="get":
                print "Start transfer......."
                with open(cmd[1],'rb') as f:
                    self.request.send(f.read())
                
                time.sleep(0.2)
                self.request.send("OOK")   #       。              
                continue
            cmd_result = commands.getstatusoutput(cmd[0])  #         shell  
            self.request.send(cmd_result[1])
            

if __name__ == '__main__':
    host=''
    port = 52167 
    s = SocketServer.ThreadingTCPServer((host,port), MySockServer)
    s.serve_forever()
    
   :
import socket
import time 

host = 'x.x.x.x' #      
port = 52167
addr = host,port
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(addr)

while True:
    Input = raw_input('Please your input:').strip()
    if len(Input)==0:continue
    s.send(Input)
    Input = Input.split()
    if Input[0]== 'get':
        print "get file ....."
        with open(Input[1],'wb') as f:
            f.write(s.recv(1024))
        time.sleep(0.2)
        if s.recv(1024) == "OOK":
            print "Down finsh ......" 
            continue  
    data = s.recv(1024)
    print data

  
ずっとpythonを独学していますが、ずっと断続的で続けられません.長い間勉強してやっと簡単なSocketを書くことができて、このIQは人を焦らせます.