0

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

を使用して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 でソケットを発生させます。 error(err)
エラー: [Errno 10048] 通常、各ソケット アドレス (プロトコル/ネットワーク アドレス/ポート) の使用は 1 つだけ許可されます

multiprocessing.process使用せずに実行すると

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

それは正常に動作します。

Linuxマシンでは、この問題はありません。

4

1 に答える 1