晚上好,这是我第一次访问这个网站,在过去的 3 个月里,我一直在为我的工作编写一个基于 python 的用户监控系统,我的第一个版本几乎完成了。但是,我在控制要连接的计算机时遇到了问题。
如果我运行我在这篇文章中放置的两个示例代码,我可以接收客户端并向服务器发送命令,但一次只能发送一个客户端,服务器决定我可以发送到哪个客户端,下一个是哪个客户端. 我确定问题出在“服务器端,但我不知道如何解决这个问题,而且谷歌搜索没有出现任何尝试过这个的人。
我在这篇文章中附加了基于客户端和服务器的网络代码。
客户:
import asyncore
import socket
import sys
do_restart = False
class client(asyncore.dispatcher):
def __init__(self, host, port=8000):
serv = open("srv.conf","r")
host = serv.read()
serv.close()
asyncore.dispatcher.__init__(self)
self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
self.connect((host, port))
def writable(self):
return 0
def handle_connect(self):
pass
def handle_read(self):
data = self.recv(4096)
#Rest of code goes here
serv = open("srv.conf","r")
host = serv.read()
serv.close()
request = client(host)
asyncore.loop()
服务器:
import asyncore
import socket
import sys
class soc(asyncore.dispatcher):
def __init__(self, port=8000):
asyncore.dispatcher.__init__(self)
self.port = port
self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
self.bind(('', port))
self.listen(5)
def handle_accept(self):
channel, addr = self.accept()
while 1:
j = raw_input(addr)
#Rest of my code is here
server = soc(8000)
asyncore.loop()