Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android音频流的UDP或TCP_Java_Android_Sockets_Audio_Tcp - Fatal编程技术网

Java Android音频流的UDP或TCP

Java Android音频流的UDP或TCP,java,android,sockets,audio,tcp,Java,Android,Sockets,Audio,Tcp,我在这里的最终目标是将用户的语音输入流式传输到Android设备,然后再传输到桌面应用程序 对于Android设备,它显然将运行基于java的Android应用程序。对于桌面应用程序,我正在考虑编写一个Java小程序来接受流 正如维基百科所解释的,这些是TCP和UDP的优点和缺点 传输控制协议是一种面向连接的协议 这意味着建立端到端连接需要握手 通讯。一旦建立了连接,就可以发送用户数据 双向连接 可靠–TCP管理消息确认、重新传输和 超时。多次尝试传递消息。如果它 在丢失的过程中,服务器将重新请

我在这里的最终目标是将用户的语音输入流式传输到Android设备,然后再传输到桌面应用程序

对于Android设备,它显然将运行基于java的Android应用程序。对于桌面应用程序,我正在考虑编写一个Java小程序来接受流

正如维基百科所解释的,这些是TCP和UDP的优点和缺点

传输控制协议是一种面向连接的协议 这意味着建立端到端连接需要握手 通讯。一旦建立了连接,就可以发送用户数据 双向连接

可靠–TCP管理消息确认、重新传输和 超时。多次尝试传递消息。如果它 在丢失的过程中,服务器将重新请求丢失的部分。在TCP中, 要么没有丢失的数据,要么在多次超时的情况下 连接已断开。有序–如果两条消息通过一个 按顺序连接时,第一条消息将到达接收端 先申请。当数据段以错误的顺序到达时,TCP 缓冲区会延迟无序数据,直到所有数据都可以正确读取 重新订购并交付到应用程序。重量级-TCP 在任何用户之前,需要三个数据包来设置套接字连接 可以发送数据。TCP处理可靠性和拥塞控制。 流式传输–数据被读取为字节流,无需区分 指示被传输到信号消息(段)边界。 用户数据报协议是一种更简单的基于消息的无连接协议 协议无连接协议不设置专用的 端到端连接。通信是通过传输来实现的 从源到目标的一个方向上的信息 验证接收器的准备就绪或状态

不可靠–发送UDP消息时,无法知道是否会发送 到达目的地;它可能会在途中迷路。没有 确认、重传或超时的概念。未订购- 如果向同一收件人发送两封邮件,则 他们的到来是无法预测的。轻量级–无需订购 消息、无跟踪连接等。这是一个小的传输层 设计在IP之上。数据报–数据包单独发送,并且 只有在它们到达时才检查其完整性。数据包有明确的定义 接收时遵守的边界,意味着在 接收方套接字将生成一条与最初一样的完整消息 发送。无拥塞控制–UDP本身无法避免拥塞。 必须在应用程序中实施拥塞控制措施 水平。广播-无连接,UDP可以广播-发送 数据包可以寻址为可由网络上的所有设备接收 子网

我希望当Android将用户的语音流传输到桌面应用程序时,用户的语音流是不间断和稳定的

除了简单地考虑维基百科列出的两种不同技术的优缺点之外,在选择一种技术时,我还应该注意什么


UDP和TCP哪一种选择更好?

UDP。因为您是流式传输,所以不需要在每次数据包丢失时重新传输数据包,这会像TCP中那样造成更多的延迟。


但是,您可以使用网络缓冲区在TCP上实现它,因此,延迟在开始时是明显的,然后将为用户提供平滑的播放

在我看来,这也取决于您的项目规范。信号丢失是否可以接受。UDP比TCP速度快得多,TCP适合传输用户的语音输入。它看起来像传统的电话,有时你会听到一些“噪音”,但通话仍然很好,我们可以使用。此外,使用TCP会给您带来显著的延迟,UDP就是为流媒体而诞生的