python Socketを利用してFTPのようなスクリプトを書きます(ダウンロードだけ書いて、アップロードとダウンロードの差が少なくて多く書きません)
Socketの紹介は多くなくて、ネット上ですべて探し当てることができて、直接スクリプトを言って、FTPの機能を実現するにはサーバー側とクライアントが必要です.
サーバ側:
ずっとpythonを独学していますが、ずっと断続的で続けられません.長い間勉強してやっと簡単なSocketを書くことができて、このIQは人を焦らせます.
サーバ側:
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は人を焦らせます.