老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業(yè)提供網(wǎng)站建設、域名注冊、服務器等服務

初試python的socket編程--ftp

server端:

在平果等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供成都做網(wǎng)站、成都網(wǎng)站設計、成都外貿(mào)網(wǎng)站建設 網(wǎng)站設計制作按需開發(fā)網(wǎng)站,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,品牌網(wǎng)站建設,網(wǎng)絡營銷推廣,外貿(mào)營銷網(wǎng)站建設,平果網(wǎng)站建設費用合理。

 #_*_coding:utf-8_*_
 
import SocketServer
import os
import commands

class MyTCPHandler(SocketServer.BaseRequestHandler):
    def handle(self):
        while True:
            instruction = self.request.recv(1024).strip() #接收客戶端命令
            if not instruction:break
            instruction = instruction.split('|')
            if hasattr(self,instruction[0]):
                func = getattr(self,instruction[0])
                func(instruction)
    def FileTransfer(self,msg):
        print '----filetransfer---',msg
        if msg[1] == 'get':
            print "clients wants to download file:",msg[2]
            if os.path.isfile(msg[2]):
                file_size = os.path.getsize(msg[2])
                res = "ready|%s" % file_size
            else:
                res = "file doesn't exist"
            print 'res=====',res
            self.send_confirmation = "FileTransfer|get|%s" %res
            self.request.send(self.send_confirmation)
            feedback = self.request.recv(100)
            if feedback == 'FileTransfer|get|recv_ready':
                f = file(msg[2],'rb')
                send_size = 0
                while not file_size == send_size:
                    if file_size - send_size > 1024:
                        data = f.read(1024)
                        send_size += 1024
                    else:
                       data = f.read(file_size - send_size)
                       send_size += (file_size - send_size)
                    self.request.send(data)
                    print file_size,send_size
            elif msg[1] == 'put':
                pass
    def ls(self,msg):
        print msg
        cmd_result = commands.getstatusoutput(msg[0])
        self.request.sendall(cmd_result[1])
if __name__ == '__main__':
    HOST,PORT = "",9002
    server = SocketServer.ThreadingTCPServer((HOST,PORT),MyTCPHandler)
    server.serve_forever()

client端:

#_*_coding:utf-8_*_

import socket
import os

class FtpClient(object):
    def __init__(self,host,port):
        self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.sock.connect((host,port))
    def start(self):
        self.interactive()

    def interactive(self):
        while True:
            user_input = raw_input(">>:").strip()
            if len(user_input) == 0:continue
            user_input = user_input.split()
            
            if hasattr(self,user_input[0]):
                func = getattr(self,user_input[0])
                func(user_input)
            else:
                print "wrong command usage"

    def get(self,msg):
        print '--get func---',msg
        if len(msg) == 2:
            file_name = msg[1]            
            instruction = "FileTransfer|get|%s" % file_name
            print 'instruction====',instruction
            self.sock.send(instruction)
            feedback = self.sock.recv(100)
            print '--->',feedback
            if feedback.startswith("FileTransfer|get|ready"):
                file_size = int(feedback.split("|")[-1])
                self.sock.send("FileTransfer|get|recv_ready") #告訴服務器端已經(jīng)準備好了接收
                recv_size = 0
                f = file('client_recv/%s' % os.path.basename(file_name),'wb')
                print '---->',file_name
                while not file_size == recv_size:
                    if file_size - recv_size > 1024:
                        data = self.sock.recv(1024)
                        recv_size += len(data)
                    else:
                        data = self.sock.recv(file_size - recv_size)
                        recv_size += (file_size - recv_size)
                    f.write(data)
                    print file_size,recv_size
                else:
                    print '---recv file:%s---' % file_name
                    f.close()
            else:
                print feedback
        else:
            print "wrong command usage!"
    def ls(self,msg):
        if len(msg) == 1:
            self.sock.send(msg[0])
            result = self.sock.recv(1024)
            print result if __name__ == '__main__':
    f = FtpClient('localhost',9002)
    f.start()


新聞標題:初試python的socket編程--ftp
文章網(wǎng)址:http://www.xueling.net.cn/article/gsdgco.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 午夜毛片免费看20次 | 在线免费中文字日产 | 欧美一级艳情片免费观看 | 天天爽天天狠久久久综合麻豆 | 亚洲av片不卡无码影视 | 亚洲伊人久久精品影院一美女洗澡 | 精品国产乱码久久久久久图片 | 成人久久视频 | 国产精品伦理久久久久久 | 日本免费在线视频不卡一不卡二 | 性奴秘书裸侍跪趴等主人玩 | 澳门精品无码一区二区三区 | 国产成人久久AV免费高清 | 国产亚洲精品久久久久久豆腐 | 99在线精品国产不卡在线观看 | 亚洲一区二区三区三 | 日韩资源在线观看 | 亚洲第一综合最大av | 欧美变态另类xxxx | 91香蕉国产在线观看免费永久 | 中国xxxx性xxxx产国 | 中文字幕在线2021一区 | 真人无码作爱免费视频 | 国内伊人久久久久久网站视频 | 一区二区三区免费 | 99国产精品久久久久久久久久 | 久久亚洲精品国产亚洲老地址 | 人人妻人人澡AV天堂香蕉 | 不卡无在线一区二区三区观 | 色综合久久久久久久久久久 | 国产美女自卫慰视频福利 | 日韩中文毛片在线 | 亚洲一区精品在线观看 | a级欧美视频 | 久久精品国产亚洲av香蕉 | 一色桃子中文字幕人妻熟女作品 | 国产成人在线看 | 欧美中日韩在线 | 国产在线亚州精品内射 | 中文字幕无线码一区2020青青 | 久久91精品国产91久久久 |