我正在做一个关键经理,我需要程序a,B和KM来互相沟通。我想要的是程序A托管B和KM的连接,B连接到A,让KM连接到B
我想要的是程序A到主机B和KM的连接,B连接到A,让KM连接到B。目前我在程序A的两个不同端口上创建了2个套接字(一个用于B,一个用于KM),我在B中有一个套接字+端口,它允许KM连接到它,另一个端口+套接字将B连接到A,最后,在KM i连接到A和B时,每个连接都有一个套接字和端口。我的计划是先运行A,然后运行B,这样它就可以连接到A并开始监听KM,然后让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代码:
^{pr2}$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
你的问题就在这里:
除此之外,您的所有套接字都使用
SOCK_STREAM
。在“B代码”里。还有一行在“code for KM”中只写了sockA
。在编辑:如果你解决了这个问题,你应该按照你想要的方式工作。我只是自己测试过。在
相关问题 更多 >
编程相关推荐