【发布时间】:2012-12-20 08:05:36
【问题描述】:
我编写了一个小型服务器客户端消息队列程序,其中服务器创建消息队列,写入队列,客户端获取消息队列 id 并从队列中读取写入的数据。
问题是,一旦客户端停止/重新启动,客户端将销毁/删除队列。服务器将尝试写入队列,但失败了。当客户端再次启动时,它会创建一个新的消息队列,现在服务器是否有可能知道消息队列已创建并开始写入队列。或者有没有其他方法可以克服这种情况。
注意:服务器不能销毁队列,因为写入的数据应该被客户端读取。
谢谢。
【问题讨论】:
-
客户端在哪里创建队列?服务器不创建队列吗?客户端应该知道服务器,反之亦然,我看不出问题出在哪里。
-
选择服务器或客户端,并让该端单独负责队列的创建和拆除。可能需要一些额外的逻辑 - 例如服务器会等待队列被清空,或者如果无法找到服务器创建的队列,客户端会拒绝启动 - 但从长远来看,更简洁的设计将减少令人头疼的问题......
标签: c linux message-queue