我正在构建一个带有球衣的安卓网络服务器和一个Android应用程序。服务器需要做的一件事就是保存从Android客户端上传的视频,并能够使用我的应用程序在其他Android设备上看到该视频。
我写了这个小测试函数:
@GET
@Path("video")
@Produces(MediaType.APPLICATION_OCTET_STREAM)
public Response video() {
File file = new File("C:/Data/video.mp4");
return Response.ok(file, MediaType.APPLICATION_OCTET_STREAM)
.build();
}
似乎随机工作。有时客户端只是加载了很长时间,我需要关闭应用程序。当我关闭我得到这个例外:
An I/O error has occurred while writing a response message entity to the container output stream.
该错误让我觉得当连接速度很慢时,如3g而不是wiki,加载需要花费大量时间,当我关闭应用程序时,连接会关闭,因此服务器无法在其上写入。所以这是我的疑问:
1)流应该与UDP一起使用,但udp没有握手,所以这种错误对我没有意义。这是否意味着我正在使用tcp?
2)我实际上发送了一个多部分文件?因为它似乎只是下载整个文件然后开始播放。
我最后的想法是:休息时这样做是否值得?有任何外部服务可以为我存储和流式传输文件,可能会添加一些服务,如压缩和类似的东西?如果不是我该怎么做?你能不能给我一个例子?
耐心和对不起我的英语:D