こんばんは、このサイトにアクセスするのはこれが初めてです。過去3か月間、Pythonベースのユーザー監視システムをプログラミングしており、最初のリリースはほぼ完了しています。しかし、接続したいコンピューターを制御する際に問題が発生しました。
この投稿に記載した2つのサンプルコードを実行すると、サーバーでクライアントを受信してクライアントにコマンドを送信できますが、一度に1つのクライアントしか送信できず、サーバーが送信できるクライアントと次のクライアントを指定します。 。問題は「サーバー側」だと確信していますが、問題を解決する方法がわかりません。Google検索では、これを試した人は誰も見つかりません。
この投稿では、クライアントベースとサーバーベースの両方のネットワークコードを添付しました。
クライアント:
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()