pyftpdlib только одно использование для каждого адреса сокета

Я использую python 2.7.2 на машине с Windows 7.

мой код:

from multiprocessing import Process

def dummy_ftp_server(local_interface, username, password, homedir, perms): 
    from pyftpdlib.authorizers import DummyAuthorizer
    from pyftpdlib.handlers import FTPHandler
    from pyftpdlib.servers import FTPServer

    authorizer = DummyAuthorizer()
    authorizer.add_user(username, password, homedir, perm=perms)

    handler = FTPHandler
    handler.authorizer = authorizer

    server = FTPServer((local_interface, 21), handler)
    server.serve_forever()      

process = Process(target=dummy_ftp_server, args=('127.0.0.1', 'user', 'pass', "C:/path/test", 'elradfmw'))
process.start()

при попытке запустить ftp-сервер с помощью multiprocessing.process я получаю эту ошибку

Трассировка (последний последний вызов): Файл "C:\path\test_ftp.py", строка 18, в dummy_ftp_server
server = FTPServer((local_interface, 21), handler)
Файл "C:\Python27\ lib\site-packages\pyftpdlib\servers.py", строка 145, в init self._af = self.bind_af_unspecified(address_or_socket)
Файл "C:\Python27\lib\site-packages \pyftpdlib\ioloop.py", строка 733, в bind_af_unspecified поднять socket.error(err)
ошибка: [Errno 10048] Обычно разрешено только одно использование каждого адреса сокета (протокол/сетевой адрес/порт).

если я запускаю его без использования multiprocessing.process с помощью

dummy_ftp_server('127.0.0.1', 'user', 'pass', "C:/path/test", 'elradfmw')

это работает нормально.

на Linux-машине такой проблемы нет.


person yossi    schedule 20.02.2014    source источник


Ответы (1)


Вы пытаетесь запустить несколько ftp-серверов на одном и том же IP-адресе с одним и тем же портом. Это то, о чем вам говорит ошибка.

Возможно, у вас уже что-то работает на 127.0.0.1:21.

проверьте в консоли с помощью netstat -an

person lxx    schedule 18.11.2014