我有一个 C 程序,通过 tcp 套接字向对等进程发送命令。收到此命令后,对等进程将开始执行请求的命令。但是,这需要很长时间,我不希望 tcp 套接字等待很长时间才能返回值。我认为,fork 一个进程将帮助我做到这一点。但是,我想要一些其他的方法来解决这个问题。请分享您与此相关的想法和经验。请帮忙。提前致谢,
问问题
108 次
3 回答
0
我不清楚你的意思。你说你想在知道结果之前给出答案,或者可能是,返回值不依赖于过程本身。在事务通信方面,有两种方法,“同步”和“异步”事务。前者等待服务器完成de进程并给出结果,第二个将发送请求并获取令牌,关闭套接字,稍后它将使用该令牌请求结果。因此,您可以做的是给被请求的对等方一个令牌,一旦该过程完成,它就可以在其中询问答案。请注意,您可能会给出表示“进程仍在运行,稍后再试”的答案。在您的服务器代码中,您需要对这个场景进行编程,给每个进程一个编号,用该编号保存结果,并且,请求时,使用该号码发送结果。如果这不合适,请更详细地解释您要完成的工作。
于 2013-07-06T19:08:04.533 回答
0
您可以使用一个线程并等待它,直到回复到来。pthread 和 wait 就可以了(虽然线程是轻量级进程)。
如果你真的想通过从不产生一个进程来做到这一点,你将不得不在收到 TCP 回复时求助于回调之类的东西,这可能可以从 TCP 包装器库中获得,但包括类似这样的东西或制作类似的东西不'如果您不等待大量回复,则没有任何意义。对于一些回复等待线程很好。
于 2013-07-06T10:41:50.053 回答