基本的に、私の考えは、コンピューターに接続してリモートでコマンドを実行できる、ある種の基本的なサーバーを作成することでした。これはそれほど問題にはならなかったようです。しかし、次のステップは論理的に、複数の接続を生成できるように、ある種のスレッドを追加することであるという明るい考えがありました。
multiprocessing.Process
私は、GILのおかげで、これを試みるのが最善だと読んだ。私はスレッドを完全には理解しておらず、スレッドに関する適切なドキュメントを見つけるのは困難です。だから私はただ物を投げて、それがどのように機能するかを理解しようとしているようなものです。
まあ、私はこれを正しく行うことに近いかもしれないようです。しかし、私はこれを正しく行うにはほど遠い可能性が高いと感じています。私のプログラムは現在、複数の接続を許可していますが、最初にスレッドを使い始めたときは許可されていませんでした。ただし、接続が確立されてから別の接続が確立されると、最初の接続はサーバーにコマンドを送信できなくなります。誰かが私に助けを与えてくれるか、私が学び、理解する必要があることについて正しい方向に私を向けてくれるなら、私はそれをいただければ幸いです。
これが私のコードです:
class server:
def __init__(self):
self.s = socket.socket()
try:
self.s.bind(("",69696))
self.s.listen(1)
except socket.error,(value,message):
if self.s:
self.s.close()
def connection(self):
while True:
client , address = self.s.accept()
data = client.recv(5)
password = 'hello'
while 1:
if data == password:
subprocess.call('firefox')
client.close()
else:
client.send('wrong password')
data = client.recv(5)
p = Process(target=x.connection())
p.start()
x = server()
if __name__ == '__main':
main()