2014-02-20 55 views
0

我在Windows 7機器上使用python 2.7.2。pyftpdlib每個套接字地址只有一個用法

我的代碼:

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

嘗試使用

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

運行使用multiprocessing.process我得到這個錯誤

Traceback (most recent call last): File "C:\path\test_ftp.py", line 18, in dummy_ftp_server
server = FTPServer((local_interface, 21), handler)
File "C:\Python27\lib\site-packages\pyftpdlib\servers.py", line 145, in init self._af = self.bind_af_unspecified(address_or_socket)
File "C:\Python27\lib\site-packages\pyftpdlib\ioloop.py", line 733, in bind_af_unspecified raise socket.error(err)
error: [Errno 10048] Only one usage of each socket address (protocol/network address/port) is normally permitted

如果我運行它的FTP服務器,而不使用multiprocessing.process時它工作正常。

在Linux機器上我沒有這個問題。

回答

0

您正嘗試在同一個IP地址上使用相同的端口運行多個ftp服務器。 這就是錯誤告訴你的。

這可能是你已經擁有的東西在控制檯用netstat -an

上127.0.0.1:21

檢查運行

相關問題