【问题标题】:pyftpdlib only one usage for each socket addresspyftpdlib 每个套接字地址只有一种用法
【发布时间】:2014-02-20 08:30:49
【问题描述】:

我在 Windows 7 机器上使用 python 2.7.2。

我的代码:

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()

当尝试使用multiprocessing.process 运行 ftp 服务器时,我收到此错误

Traceback(最近一次调用最后一次): 文件“C:\path\test_ftp.py”,第 18 行,在 dummy_ftp_server
服务器 = FTPServer((local_interface, 21), handler)
init 中的文件“C:\Python27\lib\site-packages\pyftpdlib\servers.py”,第 145 行 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 机器上我没有这个问题。

【问题讨论】:

    标签: python sockets ftp-server


    【解决方案1】:

    您正试图在同一个 IP 地址和同一个端口上运行多个 ftp 服务器。 这就是错误告诉您的内容。

    可能您已经在 127.0.0.1:21 上运行了一些东西

    使用 netstat -an 签入控制台

    【讨论】:

      猜你喜欢
      • 2018-02-13
      • 1970-01-01
      • 1970-01-01
      • 2014-01-16
      • 2022-11-26
      • 1970-01-01
      • 1970-01-01
      • 2017-04-23
      • 2014-05-29
      相关资源
      最近更新 更多