【发布时间】:2012-12-07 08:15:31
【问题描述】:
假设我们在 localhost 的 6000 端口上运行一个服务器(比如服务器 A)。我们有自己的客户端与该服务器通信(向服务器 A 发送消息)。服务器 A 不时向运行在端口 7000 上的另一台服务器(例如服务器 B)发送消息,该服务器也在我们的控制之下。我们的客户端应该根据服务器 B 收到的某些消息向服务器发送消息。
这是我想要实现的一组示例步骤
- OurClient 向 ServerA 发送消息 (JOIN)
- ServerA 向 ServerB 发送消息(确认)
- ServerA 向 ServerB 发送消息 (PATH_CLEAR)
- ServerB 通知 (PATH_CLEAR) OurClient
- OurClient 向 ServerA 发送消息 (MOVE_FORWARD)
- ServerA 向ServerB 发送消息(MOVED_FORWARD_BY_A_CELL)
- ServerA 向ServerB 发送消息(OBSTACLE_AHEAD)
- ServerB 通知 (OBSTACLE_AHEAD) 给 OurClient
- OurClient 向 ServerA 发送消息 (STOP)
- ServerA 向 ServerB 发送消息(已停止) …… ....
我在 Python 中使用套接字模块连接到服务器并创建我们的客户端和服务器。我应该使用线程来实现这种行为吗?如果是这样,我该怎么做?
我试图这样做 这是我用过的代码 How to trigger to responses from a server using python socket programming
但是一旦其他服务器接受了我的“#JOIN”消息,我就不能再发送消息了。我的客户在第一条消息之后没有发送消息。我该如何解决这个问题?
是否有任何替代方法可以做到这一点,或者我应该对我的代码进行任何更改?
【问题讨论】:
-
如果您不显示任何代码,则很难理解您做错了什么。一般来说,在套接字上,很有可能在同一个套接字上发送多个消息。
-
我的代码显示在上述问题的链接中。如果我重申:stackoverflow.com/questions/13501007/…
标签: python multithreading sockets python-multithreading