Sockets 如何使用udp套接字手动发送音频数据
我正在使用udp套接字开发视频聊天应用程序, 我能够捕获巨大的原始音频数据。由于它是聊天应用程序,我应该能够传输这个音频数据连续 问题是这个音频数据是巨大的,所以套接字mtu不允许我传输这个数据 我正在寻找一种方法,可以将这些数据拆分,通过套接字发送,并在另一端捕获它们,然后将它们组合起来生成语音数据。Sockets 如何使用udp套接字手动发送音频数据,sockets,audio,networking,udp,voice,Sockets,Audio,Networking,Udp,Voice,我正在使用udp套接字开发视频聊天应用程序, 我能够捕获巨大的原始音频数据。由于它是聊天应用程序,我应该能够传输这个音频数据连续 问题是这个音频数据是巨大的,所以套接字mtu不允许我传输这个数据 我正在寻找一种方法,可以将这些数据拆分,通过套接字发送,并在另一端捕获它们,然后将它们组合起来生成语音数据。 请指导我如何使用udp套接字和udp您必须自己处理传输顺序(udp数据报1号可以在audp数据报2号之后接收),以及丢失的数据包(udp不允许数据报的传递) 您应该使用TCP进行大容量传输,因为
请指导我如何使用udp套接字和
udp
您必须自己处理传输顺序(udp数据报1号可以在audp数据报2号之后接收),以及丢失的数据包(udp
不允许数据报的传递)
您应该使用TCP
进行大容量传输,因为数据包的顺序很重要
关于MTU
,您不必关心它是否小于要发送的数据的大小。操作系统将为您整理碎片
只需将数据分成64k
块(单个send()
调用允许的最大大小)并循环,直到数据完全传输。谢谢Davide Berra。你能提供一些关于如何执行传输顺序和丢失数据包的示例链接吗?假设你正在用C语言编程:谢谢,我正在用C#udp套接字发送大小为64K的字节数组,我可以毫无例外地发送,但接收器套接字无法获取数据。我遗漏了什么吗?非常感谢Davide Berra我知道了,问题在于我的涂层我将接收器插座的缓冲区大小设置为1024,所以我没有收到任何数据。