Python套接字未接收消息

2024-10-02 16:23:11 发布

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

我试图使用带有套接字的python来模拟令牌环,但是遇到了一个问题

主程序

node1 = node.node(8081,8082,token)
node2 = node.node(8082,8083,emptyFrame)
node3 = node.node(8083,8084,emptyFrame)
node4 = node.node(8084,8081,emptyFrame)

node1.firstrun()
node1.start()
node2.start()
node3.start()
node4.start()

节点

^{pr2}$

在代码中,我创建了4个节点,为它们提供了不同的端口,其中一个节点提供了一条消息。我让这个第一个端口向下一个节点发送一条消息,所有这些节点都运行main函数。在main函数中,我等待消息并执行while循环。打印所有4个节点的运行,但接收到的没有。因此,我不明白为什么节点从不接收第一个令牌。我的程序只是无限等待。 为了清晰起见,我不应该删除过多的代码


Tags: 端口函数代码node消息节点mainstart
2条回答

您应该首先分派所有线程,否则就没有套接字侦听。 时间。睡觉()是一种糟糕的编码方式,当涉及到线程时,不能依赖于定时函数。在

在一个点上分派你的线程。在

threads = [node1, node2, node3, node4]
[thread.start() for thread in threads]

{t{t是你的发送消息。在

您可以将顺序更改为:

node1.start()
node2.start()
node3.start()
node4.start()
node1.firstrun()
node2.firstrun()
node3.firstrun()
node4.firstrun()

然后您将看到“已接收”被打印出来。在

相关问题 更多 >