我正在制作一个与 Twisted 套接字通信的 iPhone 应用程序,当我要发送一条消息时它工作得很好。但是,我的问题是我需要向应用程序发送许多不同的信息。这是我的代码。
if numrows == 1:
#Did login
msg = "%s: Login Credentials Success" % _UDID
print msg
for c in self.factory.clients:
c.message(msg)
time.sleep(0.5)
for result in results:
for i in range(1, 6):
msg = "%s:L%d;%s" % (_UDID, i, result[i])
print msg
for c in self.factory.clients:
c.message(msg)
time.sleep(0.5)
else:
msg = "%s: Login Credentials Failed" % _UDID
print msg
for c in self.factory.clients:
c.message(msg)
time.sleep(0.5)
cursor.close()
database.close()
#print msg
#for c in self.factory.clients:
#c.message(msg)
def message(self, message):
self.transport.write(message)
假设我只发送第一个 msg,并且所有其他 msg 与 print 和每个 msg 下面的方法都不存在,消息 Login Credentials Success 将被发送到应用程序。但是,如果像您看到的那样放入其余部分,则不会发生任何事情,因为它会一次发送所有内容,即使在代码中添加 time.sleep 也是如此。
该应用程序每 0.05 秒或更短时间检查一次响应。即使登录凭据位于顶部,它也不会通过,因为之后会发送更多信息,但是如果没有凭据消息之后的所有信息,它也会通过。
我迫不及待地想找到这个问题的答案。我已经尝试了我能想到的一切。应用程序不是问题,是 Python。
谢谢。