使用ftplib的FTP服务器客户端

时间:2013-05-19 22:29:20

标签: python ftp-client ftp-server

我正在尝试实现FTP服务器和客户端来传输文件,但我基本上无法在python中使用ftplib模块在​​两者之间建立连接....

这就是我做的,如何修复代码? 还有另一种方法吗?

我服务器的代码: -

       #making the important imports for file transfer :

       from ftplib import FTP

       ftp_object_server=FTP()
       #s = socket.socket()         
       host = "121.0.0.1"
       port = 1227
       ftp_object_server.connect(host,port)


       while True:
            c, addr = ftp_object_server.accept()
            print c
            print addr# Establish connection with client.
            print 'Got connection from', addr
            c.send('Thank you for connecting')

            ftp_object_server.close()                # Close the connection

我的客户代码: -

     from ftplib import FTP


     ftp_object_client=FTP()

     host = "121.0.0.1" # Get local machine name
     port = 1227                # Reserve a port for your service.

     #---------Creating My Own Set of username and passwords ------------------------#
     Username=['abc','efg','hij']
     Password=['123']


     input_user_name=raw_input('Enter the Username')
     input_user_password=raw_input('Enter the password')           

     if input_user_name in Username and input_user_password  in Password:
         ftp_object_client.connect(host)
         print ftp_object_client.recv(1024)

         ftp_object_client.close()

1 个答案:

答案 0 :(得分:1)

标准库中的ftplib模块仅涵盖FTP协议的客户端部分。 所以你所做的就是尝试打开两个与121.0.0.1的连接。我假设你的意思是localhost,无论如何都是127.0.0.1

不知道你实际想要达到的目标,有一些选择:

  • 使用HTTP传输文件,使用python -m SimpleHTTPServer(或python3中的python3 -m http.server)和requests作为客户端
  • 使用现有解决方案(请参阅One line ftp server in python的答案)
  • 实施您自己的服务器