【发布时间】:2013-11-16 07:12:49
【问题描述】:
我正在尝试创建一个分布式哈希表。有一个线程。但是线程中的run函数找不到我在构造函数中初始化的sock变量。
这里是代码 -
from socket import *
from threading import *
class DHT(Thread):
def _init_(self):
self.sock = socket(AF_INET, SOCK_STREAM)
self.sock.bind(('127.0.0.1', 5000))
self.sock.listen(1)
def run(self):
while 1:
conn, addr = self.sock.accept()
data = conn.recv(20)
message, port, value = data.split("-")
if message == 'route message':
self.route_message(port, value)
elif message == 'check alive':
self.check_alive(port, value)
elif message == "new node":
self.new_node(port, value)
elif message == "update hash":
self.update_hash(port, value)
conn.close()
def route_message(self, port, value):
print("Routing Message")
def check_alive(self, port, value):
print("Checking Alive")
def new_node(self, port, value):
print("New Node")
def update_hash(self, port, value):
print("Updating Hash")
if __name__ == '__main__':
DHT().start()
【问题讨论】:
标签: python multithreading constructor self class-variables