2017-10-26 7 views
0

Ich habe zwei TCP-Socket-Server in Python, jeder mit einigen (etwa 4) Clients. Ich möchte, dass die beiden Server miteinander kommunizieren können, sodass beide Befehle senden und kommunizieren können.Kommunizieren zwischen zwei Socket-Server

Ist das möglich? Und wenn ja, wie?

+0

ja natürlich kommunizieren können Sie nur noch einer von ihnen Client des anderen –

+0

Ich weiß nicht, was Sie wirklich machen gemein, aber er wird auch weiterhin seinen Kunden dienen –

+0

Ich bin gerade ein bisschen verwirrt, sorry, ich bin neu in der Programmierung. Wie kann ich also einen Computer wie einen Client und als Server agieren lassen? Selbst wenn ich versuche, den gleichen Port zu verwenden, gibt es mir einen Fehler ... –

Antwort

1

Dies ist ein Beispiel:

import socket 
socket_between_servers = None 


def connect_to(host='', port=1060): 
    global socket_between_servers 
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
    try: 
     sock.connect((host, port)) #check if the first server is already waiting 
     socket_between_servers = sock 
    except socket.error: 
     s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
     s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) 
     s.bind((host, port)) 
     s.listen(5) # waiting for the 4 clients plus the other server 
     print 'waiting for the peers...' 
     n = 0 
     while n < 5: 
     sc, sockname = s.accept() 
     if sockname == 'ip addresse of the other server': 
      socket_between_servers = sc 
     n += 1 
    else: 
     s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
     s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) 
     s.bind((host, port + 1)) 
     s.listen(4) # waiting for the 4 clients 
     n = 0 
     while n < 4: 
     sc, sockname = s.accept() 

dann mit socket_between_servers die Server

+0

danke! Ich verstehe das Konzept jetzt und werde versuchen, das zu implementieren –

+0

Ok Sie sind willkommen –

Verwandte Themen