2011-12-22 56 views
1

我對Python有一些n00b,並且正在處理一個小項目。這是我在SRC代碼/ sock.py在Python中調用的方法

import socket 
import config 
class Server(socket.socket): 
    def __init__(self): 
     socket.socket.__init__(self, socket.AF_INET, socket.SOCK_STREAM) 

    def start(self): 
     self.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) 
     self.bind((config.bind_host, config.bind_port)) 
     self.listen(5) 

     while True: 
      pass 

和我的代碼在start.py

import src 

Socket = src.sock 

Socket.Server() 
Socket.Server.start 

但服務器似乎並沒有首發。 :(

任何幫助,將不勝感激

回答

1

您的代碼:

Socket.Server() 

將創建一個服務器實例但既然你沒有指定創建實例變量,你不能使用它或達到它(它會被垃圾收集速度非常快)。

Socket.Server.start 

訪問的服務器類start方法(而不是創建的實例,但是類),但同樣,你不用它做任何事情。你不叫它,你不把它分配給任何東西。所以它實際上是一個noop。

您需要將創建的服務器實例分配給一個變量,然後在該實例上調用start方法。像這樣:

server = Socket.Server() 
server.start()