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
ja natürlich kommunizieren können Sie nur noch einer von ihnen Client des anderen –
Ich weiß nicht, was Sie wirklich machen gemein, aber er wird auch weiterhin seinen Kunden dienen –
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 ... –