基本上,我的想法是编写某种基本服务器,我可以在其中连接到我的计算机,然后远程运行命令。这似乎不是什么大问题。但后来我有了一个好主意,下一步逻辑上是添加某种线程,这样我就可以产生多个连接。
我读到,由于 GIL,multiprocessing.Process
最好尝试这样做。我不完全理解线程,很难找到关于它的好的文档;所以我只是扔东西并试图弄清楚它是如何工作的。
好吧,看来我可能快要做到这一点了;但我有一种感觉,我几乎不可能正确地做到这一点。我的程序现在确实允许多个连接,而当我第一次开始使用线程时它没有;但是一旦建立连接,然后建立另一个连接,第一个连接就不再能够向服务器发送命令。如果有人能给我任何帮助,或者指出我需要学习和理解的正确方向,我将不胜感激。
这是我的代码:
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()