【发布时间】:2010-12-10 13:32:40
【问题描述】:
我的问题是在 Java 中读取/写入 linux Pipe 的最佳方式是什么?我已经在使用 java.io.RandomAccessFile 之类的
RandomAccessFile file = new RandomAccessFile("/dev/zap/16", "rw");
然后将其传递给工作线程,工作线程每 2 毫秒读取一次
byte[] buffer = new byte[16];
file.read(buffer);
它确实从 Pipe 读取它,但我怀疑某些字节被覆盖了。你知道 linux (ubuntu) 是如何处理管道缓冲区的吗?
【问题讨论】:
-
和星号有什么关系?
-
实际上 /dev/zap/16 是由用于 Asterisk 的 Zaptel 驱动程序创建的,当您的机器上安装了 SS7 卡时。 Asterisk 有一个模块可以读取这个管道,但是是本地代码。我正试图让它在 Java 上运行。题外话,但如果你们中的任何人试图安装 Asterisk + SS7 这是我的经验amitbhayani.blogspot.com/2009/04/asterisk-ss7.html
标签: java pipe named-pipes