我有一个应用程序可以通过 LAN 与其他客户端进行实时通信。该应用程序要求数据包有序且全部到达。它还需要尽可能快的传输,我在这件事上似乎对 TCP 有一些问题。
所以我在考虑这个,作为一个没有经验的网络程序员,如果我先发送一个 UDP 协议(protocol)消息,然后用 TCP 发送相同的数据会怎样。如果 UDP 消息到达,我会尽快收到它,否则我仍然有 TCP 消息,确保我至少能收到数据包。显然,我会通过为每条消息提供一个 ID 或类似信息来确保我不会读取相同的数据两次。
这是什么好方法吗?我在想,也许同时发送 tcpmessage 只会减慢 udp 消息的速度,所以它无论如何都不会有所作为。
最佳答案
不,这不是一个好方法。
您正在将网络带宽加倍,并显着增加网络代码的复杂性,但 yield 微乎其微。
TCP 和 UDP 具有非常不同的特性。如果您关心及时到达的数据,如果数据迟到则没有用,那么 TCP 就没有用,因此您应该使用并且只使用 UDP。如果您不关心数据是否及时到达,那么 UDP 就没有用,因为它不可靠。
关于sockets - 先发送 UDP 消息再发送 TCP 消息有什么好处吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12235511/