with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT))
s.sendall(json.dumps(signal).encode('utf8'))
print(信号已发送:, signal)
print(f新连接: {addr})
clients.append(conn)
try:
while True:
data = conn.recv(1024)
if not data:
break
signal = json.loads(data.decode('utf8'))
print(f收到信号: {signal})
broadcast(signal, conn)
finally:
clients.remove(conn)
conn.close()
def broadcast(signal, sender_conn):
广播信号给所有跟随者
for client in clients:
if client != sender_conn: 不发送回信号提供者
try:
client.sendall(json.dumps(signal).encode('utf8'))
except Exception as e:
print(f广播失败: {e})
def start_server():
启动服务器
HOST = '127.0.0.1'
PORT = 65432
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((HOST, PORT))
s.listen()
print(f服务器启动,监听 {HOST}:{PORT})
while True:
conn, addr = s.accept()
threading.Thread(target=handle_client, args=(conn, addr)).start()
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT))
while True:
data = s.recv(1024)
if not data:
break
signal = json.loads(data.decode('utf8'))
print(f收到信号: {signal})
execute_trade(signal)