【发布时间】:2017-12-15 11:28:37
【问题描述】:
当我连接到服务器时遇到问题,它连接正确并且线程中的代码运行完美,问题是它看起来好像我没有收到任何消息,或者至少 self.data没有更新,我尝试使用 print("") 进行检查,似乎代码没有到达我启动线程后的 while 循环。这是我的代码:
class Client:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
def __init__(self, address):
self.sock.connect((address, 10000))
self.playerID = PID
self.data = [0, 0, 0, 0, 0]
iThread = threading.Thread(target=self.game(self.data))
iThread.daemon = True
iThread.start()
while True:
data = self.sock.recv(2048)
datas = pickle.loads(data)
for i in range(0, len(self.data)):
self.data[i]= datas[i]
if not data:
break
def game(self, data):
morecode...
【问题讨论】:
-
game有什么回报吗? -
嗨,不,它只向服务器发送消息并更新列表
-
在创建
Thread时,您似乎在调用self.game(self.data),而不是让线程调用它。 -
我应该如何让线程调用我的游戏函数?
-
你有没有环顾四周,看到任何使用带参数的目标创建线程的示例?
标签: python multithreading python-3.x networking python-3.6