一个接一个地连接到不同服务器的Python客户端
我是python新手,正在用python编写套接字代码。我有三台不同的机器(机器A、机器B和机器c),IP地址分别为1.1.1.1、IPb和IPc 现在,我希望我的机器A作为服务器A运行一个线程,作为客户端A运行一个客户端线程。相同的代码将在机器B和C中运行。客户端A将检查服务器B是否正在侦听。如果服务器B未侦听,请尝试连接到服务器c。如果服务器c未侦听,请连接到服务器A并执行某些操作 我的代码如下:一个接一个地连接到不同服务器的Python客户端,python,sockets,Python,Sockets,我是python新手,正在用python编写套接字代码。我有三台不同的机器(机器A、机器B和机器c),IP地址分别为1.1.1.1、IPb和IPc 现在,我希望我的机器A作为服务器A运行一个线程,作为客户端A运行一个客户端线程。相同的代码将在机器B和C中运行。客户端A将检查服务器B是否正在侦听。如果服务器B未侦听,请尝试连接到服务器c。如果服务器c未侦听,请连接到服务器A并执行某些操作 我的代码如下: import os, sys, socket, time, threading Host =
import os, sys, socket, time, threading
Host = 1.1.1.1
PORT = 1111
threads = []
threadss =[]
def server():
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((HOST, PORT))
while 1:
print ("Listening")
s.listen()
conn, addr = s.accept()
with conn:
print("connected")
data = conn.recv(1024)
if data == b'please sleep':
time.sleep(300)
if data == b'do something':
print("do something")
def client():
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
while 1:
try:
s.connect((IPaddress of Machine B, Port of machineB))
except Exception as inst:
print("machine B not ready")
try:
s.connect((IP address of Machine C, Port of MAchine c))
except Exception as inst:
print("machine c not ready"))
s.connect(('1.1.1.1', 1111))
s.sendall(b'do something')
serv = threading.Thread( target=server)
threads.append(serv)
serv.start()
print("starting the thread serv")
time.sleep(3)
cli=threading.Thread(target = client)
threadss.append(cli)
cli.start()
print("client started")
在以下情况下,我无法执行该操作:
客户端A检查服务器B和服务器c是否处于活动状态,如果其中任何一个处于活动状态,则会向服务器A发送消息以使其休眠
提前感谢您的帮助 你能更具体地说明你在努力解决的问题吗?另一方面,像这样使用
异常除外是不好的做法,请参阅,例如,我在客户端A能够连接到服务器B的场景中遇到了困难。在这种情况下,客户端A应该向服务器A发送消息“请睡眠”