【发布时间】:2014-01-31 02:31:39
【问题描述】:
我没有得到的是 Unix 域套接字之间的数据流。
我理解 Unix Domain Socket 数据流是
LocalSocket client .connect() --> LocalServerSocket server .accept()
客户端向服务器发送数据,直截了当,我理解。
但是,对于来自 Android 的 MediaRecorder 的流式视频/音频,经过大量研究,我看到每个使用 LocalSocket 而不是 MediaRecorder 文件的示例原则上如下:
https://static.foxdogstudios.com/static/presentations/keeping-it-real-time.html#/9
LocalServerSocket server = new LocalServerSocket("some name");
receiver = new LocalSocket();
receiver.connect(server.getLocalSocketAddress());
LocalSocket sender = server.accept();//LocalSocket not LocalServerSocket as in Source link
// ...
// Give the MediaRecorder our fake file
recorder.setOutputFile(sender.getFileDescriptor());
这段代码看起来像:
MediaRecorder --> LocalSocket sender -->
LocalServerSocket server .accept() --> LocalSocket receiver .connect()
发生了什么事??
显然,套接字数据以相反的方向流动,因此,我不明白为什么这段代码会按预期工作。
您能不能给点建议。谢谢。
【问题讨论】:
标签: java android sockets stream unix-socket