ツイストソケットと通信するiPhoneアプリケーションを作成していますが、送信するメッセージが1つある場合にうまく機能します。ただし、私の問題は、アプリにさまざまな情報を送信する必要があることです。これが私のコードです。
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)
最初のメッセージだけを送信することになっていて、他のすべてのメッセージが印刷と一緒に存在しなかったとします。各メッセージの下のメソッドについては、LoginCredentialsSuccessというメッセージがアプリに送信されます。しかし、あなたが見ているように残りを入れると、コードにtime.sleepを入れても、一度にすべてを送信するため、何も起こりません。
アプリは.05秒以内に応答をチェックします。ログインクレデンシャルが一番上にある場合でも、後で送信される情報が多いため、通過しませんが、クレデンシャルメッセージの後にすべての情報がないと、通過します。
私はこれに対する答えを見つけることに必死です。私は考えられるすべてを試しました。アプリは問題ではなく、Pythonです。
ありがとう。