私がやりたいことは、1025+ のすべてのポートで次のスクリプトを実行することです。私が行っているのは、オンライン ゲーム用にこのスクリプトとやり取りする Blackjack iPhone アプリを作成することです。問題は、すべてのポートを毎回リッスンするようにポートを変更して、これを各ポートに手動で配置したいということです。すべてのポートに新しいテーブルがあるようにするにはどうすればよいですか。各テーブルには、アプリがチェックする ID があり、プレーヤーの数とテーブルにいる人を確認します。
ソケットは Table クラスの ID を設定しますが、そのテーブルを維持し、すべてのプレーヤーの動きなどを保存できるようにするには、複数のポートに接続する必要があります。
要するに、このスクリプトをすべてのポートで実行するにはどうすればよいですか? また、リスニング ポートを単独で変更するにはどうすればよいでしょうか? また、各ポートで Python にすべてのテーブルを単独で作成させるにはどうすればよいでしょうか?
class Table:
def __init__(self, id):
self.players = []
self.positions = {'1': '', '2': '', '3': '', '4': ''}
def sit(self, player_id, position):
self.positions[position] = player_id
# --------------------------------------------- #
# --------------------------------------------- #
class Socket(Protocol):
def connectionMade(self):
#self.transport.write("""connected""")
self.factory.clients.append(self)
print "Clients are ", self.factory.clients
def connectionLost(self, reason):
self.factory.clients.remove(self)
def dataReceived(self, data):
#print "data is ", data
a = data.split(':')
if len(a) > 1:
command = a[0]
content = a[1]
msg = ""
print msg
for c in self.factory.clients:
c.message(msg)
def message(self, message):
self.transport.write(message)
factory = Factory()
factory.protocol = Socket
factory.clients = []
reactor.listenTCP(1025, factory)
print "Blackjack server started"
reactor.run()