zoukankan      html  css  js  c++  java
  • Ftp客户端(上传文件)

    #coding=utf-8
    import os
    import socket
    import hashlib
    import json
    
    # client = socket.socket()    #申明socket类型,同时生成socket连接对象
    # client.connect(('localhost',6969)) #传入元组,连接到服务端
    class FtpClient(object):
        def __init__(self):
            self.client = socket.socket()
    
        def help(self):
            """
            ls:
            pwd:
            cd..
            get filename
            put filename
            :return:
            """
        def connect(self,ip,port):
            self.client.connect((ip,port))
    
        def interactive(self):
     #       self.authenticate()
            while True:
                cmd = raw_input('>>').strip()
                if len(cmd) == 0 :continue
                cmd_str = cmd.split()[0]
                if hasattr(self,'cmd_%s'%cmd_str):
                    func = getattr(self,'cmd_%s'%cmd_str)
                    func(cmd)
                else:
                    self.help()
    
        def cmd_put(self,*args):
            cmd_split = args[0].split()
            if len(cmd_split) >1 :
                filename = cmd_split[1]
                if os.path.isfile(filename):
                    filesize = os.stat(filename).st_size
                    msg_dic = {'action':'put',
                               'filename':filename,
                               'size':filesize}
                    self.client.send(json.dumps( msg_dic))
                    server_response = self.client.recv(1024)
                    f = open(filename,'rb')
                    for line in f:
                        self.client.send(line)
                    else:
                        print '文件上传完成'
                else:
                    print '文件不存在',filename
    
    if __name__ == '__main__':
        ftp = FtpClient()
        ftp.connect('localhost',9999)
        ftp.interactive()
    
  • 相关阅读:
    第二章函数对象
    2013/10/24初学BOOST
    [转]delete 多表删除的使用
    vs2010配置boost编程环境(照抄并简化)
    游戏服务器修改状态标志位方法
    小思 引用和指针
    第二章:UNIX标准化及实现
    const指针
    第一章:UNIX基础知识
    基础算法——位运算
  • 原文地址:https://www.cnblogs.com/qiangayz/p/8613650.html
Copyright © 2011-2022 走看看