java中的UDP,数据报和声音

时间:2012-02-05 22:23:47

标签: java audio udp

我需要一个发送UDP声音数据包的示例代码,例如使用数据报从服务器发送音频,由麦克风录制音频,发送给只听音频的客户端。有谁可以帮助我吗? 我找到了很好的例子,但他们都使用TCP和套接字(比如这个http://www.developer.com/java/other/print.php/2105421),而不是DatagramSocket,我真的很感谢你的帮助。

2 个答案:

答案 0 :(得分:3)

通过UDP发送有点傻。 UDP可以按任何顺序到达,并且协议中没有排序。这意味着您可能会收到或不会收到数据包,您可能会在收到数据包之前收到数据包2,并且无法知道(没有编写一些代码来对其进行排序),这是第一个。

删除UDP并使用TCP。

编辑:

好的,假设您必须使用UDP然后大致我会这样做(假设您可以发送UDP数据包)

1)创建要封装在以下数据的UDP中的数据方案

包序号 数据 Crc校验和

2)在客户端,您需要一个缓冲区来订购和重新组装数据

这将缓冲数据包,命令并在给定的缓冲区长度重新组装数据(插入没有音频或截断丢失序列号的地方)

您还需要了解比特率考虑最弱的连接。最好是失去声音的粒度而不是非常清晰的声音片段。

请注意。 crc也可以与数据长度相结合。

H个

答案 1 :(得分:0)

尝试使用这些链接:

  1. Simplistic Java music broadcasting over UDP
  2. TCP/IP, UDP & Multicasting Through Java's Socket
  3. 选中Interactive Telephony Article,特别是Streaming Class Example
  4. 然后在Java中阅读关于DatagramSocket Class的内容。 This tutoria我应该明确帮助。