我是否应该害怕使用UDP进行客户端/服务器广播通话?

时间:2013-08-06 00:26:22

标签: delphi tcp udp indy broadcasting

我花了最后两天阅读关于Indy StackOverflowTCP协议的每个UDP个问题和答案(以及 Google搜索)以便做出决定我应该在用户应用程序和Windows服务之间的通信方法中使用哪一个。

从我到目前为止看到的情况来看,UDP是最容易的,也是唯一一个我设法接收来自TidUDPClient的广播消息的人(我还没有回复回应)。而且我也注意到TCP对于它的线程循环来说有点复杂。

但是因为无处不在,我被告知 UDP不可靠,UDP不可靠...... 我开始怀疑使用{{1}是不是更好无论如何。

我的用户应用程序将在许多计算机上运行,​​并且服务将在其中一台计算机上运行,​​与客户共享一个TCP,或者在专用计算机上共享,具体取决于我的客户资金。那么,我真的应该担心IP数据丢失的可能性吗?

我需要广播功能,所以我的服务器立即建议所有客户端关于应用程序更新,当然,如果我的客户端应用程序不知道服务/服务器是UDP,它将发送广播呼叫被告知服务器在哪里。这适用于IP吗?


我发送的消息是用户访问确认,用户权限和应用程序可执行文件更新的请求,因为主应用程序无法自行更新。 这些消息加密如下,有时可能会更大。

TCP

1 个答案:

答案 0 :(得分:3)

我决定同时使用它们!

简单用例:

为了与TCP协议进行通信,您必须建立一个连接,只有当您知道两端的IPPort时才能拥有该连接。

如果您在加载应用程序时没有该信息,则使用UDP广播您的IP地址以及您打算找到/ a服务器。在向用户提出错误,告知您没有找到服务器或服务器已关闭之前,您可能会尝试大约5次。

UDP中发送该邮件会(一次或另一次)到达服务器的UDP耳朵,现在它将从孤独的客户端IP知道IP并现在开始通过TCP进行正确的连接,以便阅读应用程序的关键消息。

您如何看待这种方法?