从网络流中读取所有数据

时间:2012-07-17 08:18:45

标签: asp.net sockets

我需要让我的用户从我的mp3存档服务器下载mp3文件

我的网络中有2台服务器,第一台服务器是(网络服务器),另一台服务器用于mp3格式的音轨,我称之为(声音服务器)。

我需要让用户从音轨服务器下载声音文件。对于这个porpose我使用套接字编程。

到目前为止,我所做的是声音文件从声道服务器读取并通过网络流发送到网络服务器。但是,在网络服务器上模拟之前,每个声道的大小都是已知的。

这不仅是因为用户应该知道音轨的大小,而且软件也应该是动态的,并且音频的大小可以在网络服务器上进行模拟。

特别是我在以下代码中遇到有关上述问题的困难。

...
ns = tcpClient.GetStream()
dim recBytes( **?** ) as byte         
'By puting question mark I  am trying to show exactly where I have problem.

ns.read(recBytes,0,recBytes.lentgh)
....
Dim response As HttpResponse = HttpContext.Current.Response
...
response.BinaryWrite(recBytes)
...

感谢您的建议

1 个答案:

答案 0 :(得分:0)

这里recBytes(?)指的是你将用来读取流的缓冲区,它可以是任何东西,如果你选择的数字太小,性能会受到影响,太大而你会耗尽内存。除此之外没有任何限制。对于标准网络通信,几乎K就足够了(4096与其他任何数字一样好)。

顺便说一句:你不需要打开从网络服务器到你的音轨的单独流媒体" (媒体)服务器,只是映射网络路径并将虚拟目录映射添加到您的Web服务器,然后客户端将能够直接访问这些文件。