【问题标题】:How to send Audio data manually using udp sockets如何使用 udp 套接字手动发送音频数据
【发布时间】:2013-02-21 05:29:57
【问题描述】:

我正在使用 udp 套接字开发视频聊天应用程序, 我能够捕获巨大的原始音频数据。因为它是聊天应用程序,所以我应该能够连续传输此音频数据。

问题是这个音频数据很大,所以 socket mtu 不允许我传输这个数据。

我正在寻找可以拆分这些数据并通过套接字发送并在另一端捕获它们并将它们组合以产生语音数据的方法。 请指导我如何使用 udp 套接字

【问题讨论】:

    标签: sockets audio networking udp voice


    【解决方案1】:

    使用UDP,您必须自己处理传输顺序(UDP datagram number 1 可以收到AFTER a UDP datagram number 2)和丢失的数据包(UDP 不授予数据报的传递)

    您应该使用TCP 进行大尺寸传输,其中数据包的顺序很重要。

    关于MTU,您不必关心它是否小于您要发送的数据的大小。操作系统会为您整理碎片。

    只需将数据拆分为 64k 块(单个 send() 调用允许的最大大小)并循环直到您的数据完全传输。

    【讨论】:

    • 谢谢大卫·贝拉。您能否提供一些有关如何执行传输顺序和丢失数据包的示例链接
    • 假设你用 C 语言编程:Sockets tutorial - TCP
    • 谢谢,我正在使用 c# udp 套接字发送大小为 64K 的字节数组,我能够毫无例外地发送,但是接收方套接字无法获取数据。我错过了什么吗?
    • 非常感谢 Davide Berra 我明白了,问题出在我的编码上,我将接收器套接字的缓冲区大小设置为 1024,所以我没有收到任何数据。
    猜你喜欢
    • 2015-08-31
    • 2021-09-26
    • 2013-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多