可以充当clien的Python服务器

2024-10-01 13:33:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个关键经理,我需要程序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

Tags: 端口代码程序ipportconnectsockettcp
1条回答
网友
1楼 · 发布于 2024-10-01 13:33:22

你的问题就在这里:

sockA = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

除此之外,您的所有套接字都使用SOCK_STREAM。在“B代码”里。还有一行在“code for KM”中只写了sockA。在

编辑:如果你解决了这个问题,你应该按照你想要的方式工作。我只是自己测试过。在

相关问题 更多 >