我要做的是创建一个简单的Java音频流服务器。为了简单起见,它只是静态MP3文件,但我确信理论转移。客户端可以是本地的,也可以是Internet,可以是任何可以编程与服务器通信的设备或计算机。
我之前从未编程任何与流/网络或服务器/客户端相关的内容,因此我认为这对于学习新内容是一项有用的练习。
我认为有待考虑的事情:
客户端身份验证 - 如何完成此操作,服务器将如何知道该用户是目标用户。
客户端会有某种缓冲。当客户端从缓冲区读取时,缓存的缓冲区文件可能会有文件锁定,因此我无法简单地将文件的新段追加到最后。
你真的需要播放多少MP3文件?它是线性的,因此第一个x KB包含音乐声音前y秒的所有信息。
我将文件流式传输到哪个细分段?
是否可以通过流中的MP3文件知道您的距离?如何处理?
我实际使用哪种协议进行流式传输?我假设某种HTTP请求最好在这里?可以通过80以外的端口进行HTTP请求不是吗?
Java是否具有可靠传输的内置协议,或者您是否必须深入了解实际情况并处理使用确认等来回发送数据包...
是否可以加密流量?有足够的安全性来保护文件不被读取,但并不是说移动设备等低功耗设备无法快速解密,无法顺利播放。
我确信我还需要考虑更多的事情,但这些是我能想到的其他事情。
我想在上面的所有内容中都没有真正的问题,这是更多的思考,所以我想为什么问题是:我从哪里开始?有什么有趣的读物吗?有没有人对上述有任何想法?
重申一下,我在这里看“重新发明轮子”,我想在学习这些东西时学习,这样我就可以把知识转移到其他东西上。
答案 0 :(得分:0)
我实际使用的协议是什么 流?我假设某种HTTP 请求最好在这里吗?它是 可以通过a进行HTTP请求 80以外的港口不是吗?
是的,你可以越过80以外的其他端口(使用符号http://streamserver.com:8080/path/to/music.mp3)
Java是否具有内置协议 可靠的传输还是你有 进入细节和交易 与来回发送数据包 有致谢......等等......
如果你使用的是http
是否可以加密流量?有足够的安全性 文件没有被阅读,但没有那么多 低功率设备,如 手机无法快速解密 用于流畅播放。
标准SSL加密连接足够快且足够安全