我需要使用/tmp中命名的FIFOs与进程(Kamailio SIP服务器)通信。它的工作方式是,我需要建立一个自己的响应FIFO,然后将请求写入Kamailio,后者将把响应写回我的FIFO。在
所以,我该怎么理解。。在
尝试打开(fifo,“r”)fifo并读取它。。但这将在open()中阻塞,因为还没有人打开FIFO进行写入
将请求写入已知的静态FIFO(例如/tmp/request_FIFO)。此请求包括我的响应FIFO的名称
Kamailio将处理请求,打开我的响应FIFO进行写入,并将响应写入()。
此时,open()可能应该取消阻塞,read()将接收数据。但似乎不是这样。它有时有用,但有时不起作用。
写入响应后,Kamailio将关闭我的响应FIFO,这将导致下一次读取()出现EOF。
现在我可以rm临时响应FIFO
我的大脑在尝试用几种不同的方法来做这件事之后,包括穿线,波彭:我是一个“cat<;response_fifo”,甚至尝试使用非阻塞打开和轮询。。在
如果我看看用于运行命令的Kamailio shell脚本是如何做到的,它太简单了,让我哭了:)
cat < $response_fifo &
printf "$CMD" > $request_fifo
wait
rm $response_fifo
有人在Python中有优雅的解决方案吗?在
目前没有回答
相关问题 更多 >
编程相关推荐