Я работаю над менеджером ключей, и мне нужны программы A, B и KM, чтобы общаться друг с другом. Я хочу, чтобы программа A размещала соединения для B и KM, а B - для подключения к A и позволяла KM подключаться к B.
Я хочу, чтобы программа A принимала соединения для B и KM, а B - для подключения к A и позволяла KM подключаться к B. В настоящий момент я создаю 2 гнезда на 2 разных портах в программе A (один для B и один для KM), у меня есть сокет + порт в B, который позволяет KM подключаться к нему, и другой порт + сокет, который соединяет B с A, наконец, в KM я подключаюсь и к A, и к B, каждое соединение имеет сокет и порт , Я планирую сначала запустить A, а затем B, чтобы он мог подключиться к A и начать прослушивание KM, а затем подключить KM к ним обоим.
код для КМ:
TCP_IP = "127.0.0.1"
TCP_PORT_A = 50021
TCP_PORT_B = 50031
sockA = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sockA
sockA.connect((TCP_IP, TCP_PORT_A))
print("conn to A")
sockB = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sockB.connect((TCP_IP, TCP_PORT_B))
print("conn to B")
код для A:
TCP_IP = "127.0.0.1"
TCP_PORT_REC_B = 50001
TCP_PORT_REC_KM = 50021
sockB = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sockB.bind((TCP_IP, TCP_PORT_REC_B))
sockB.listen(1)
print('listening on ', (TCP_IP, TCP_PORT_REC_B))
connB, addrB = sockB.accept()
print("connection address B: ", addrB)
sockKM = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sockKM.bind((TCP_IP, TCP_PORT_REC_KM))
sockKM.listen(1)
print('listening on ', (TCP_IP, TCP_PORT_REC_KM))
connKM, addrKM = sockKM.accept()
print("connection address K: ", addrKM)
код для B:
TCP_IP = "127.0.0.1"
TCP_PORT_A = 50001
TCP_PORT_KM = 50031
sockA = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sockA.connect((TCP_IP, TCP_PORT_A))
print("connected to A")
sockKM = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sockKM.bind((TCP_IP, TCP_PORT_KM))
print("listening")
sockKM.listen(1)
connKM, addrKM = sockKM.accept()
print("connection address k: ", addrKM)
Я запускаю A, затем B, B говорит, что он подключен к A и начинает слушать, A не подтверждает соединение, я запускаю KM и получаю:
sockA.connect((TCP_IP, TCP_PORT_A))
ConnectionRefusedError: [WinError 10061] No connection could be made
because the target machine actively refused it