一个socket问题,文件传输,但不保存问题。大神们在哪儿呢

用socket 传文件, 比如说传视频,接收方 不下载,只将接受到的数据存在内存中,并在内存中使用 播放它。大神们,帮帮忙嘞~~~

8个回答

你保存不保存,都无所谓,本身要播放文件,也是要把文件加载到内存。。

是传到服务器吗?感觉这个视频还是要转到服务器中才行!服务器才是中转站

koala_boy
koala_boy 什么中转站。。所以得数据都要加载到内存才能利用,持久化只是存储,本身文件是死的
4 年多之前 回复

你要了解一点,如果接收到数据直接利用这个流数据,你得控制好你服务器的内存使用量

那就每次固定从缓冲区取内容,然后播放再释放资源,反复 的过程

WangNeilZ
WangNeilZ 这样具体怎么实现呢、?求教
4 年多之前 回复

你得保证你服务器端有足够的内存存放你的客户端发过来的数据,不然会内存泄露,出错的。

你得保证你服务器端有足够的内存存放你的客户端发过来的数据,不然会内存泄露,出错的。

那就直接操作流即可,不用保存到磁盘上,注意控制好内存使用量

zuishikonghuan
zuishikonghuan 回复WangNeilZ: 我的意思是说你接收到数据直接操作即可,不用存到磁盘上,如何操作和数据有关
4 年多之前 回复
WangNeilZ
WangNeilZ 用操作流吗?客户端接收到服务器传过来的 文件, 我一开始用的是 recv 的socket函数。
4 年多之前 回复

把你接收到的字节采用ByteArrayOutputStream保存到一个字节数组中,然后当需要播放的时候,再把她转换成一个字节数组传递给播放器

WangNeilZ
WangNeilZ 您好, 我用的是COM组件 的播放器 ,即Active X 控件中的 Media Player。他传的是 视频路径
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问