我花了最后两天阅读关于Indy StackOverflow
和TCP
协议的每个UDP
个问题和答案(以及 Google搜索)以便做出决定我应该在用户应用程序和Windows服务之间的通信方法中使用哪一个。
从我到目前为止看到的情况来看,UDP
是最容易的,也是唯一一个我设法接收来自TidUDPClient
的广播消息的人(我还没有回复回应)。而且我也注意到TCP
对于它的线程循环来说有点复杂。
但是因为无处不在,我被告知 UDP
不可靠,UDP
不可靠...... 我开始怀疑使用{{1}是不是更好无论如何。
我的用户应用程序将在许多计算机上运行,并且服务将在其中一台计算机上运行,与客户共享一个TCP
,或者在专用计算机上共享,具体取决于我的客户资金。那么,我真的应该担心IP
数据丢失的可能性吗?
我需要广播功能,所以我的服务器立即建议所有客户端关于应用程序更新,当然,如果我的客户端应用程序不知道服务/服务器是UDP
,它将发送广播呼叫被告知服务器在哪里。这适用于IP
吗?
我发送的消息是用户访问确认,用户权限和应用程序可执行文件更新的请求,因为主应用程序无法自行更新。 这些消息加密如下,有时可能会更大。
TCP
答案 0 :(得分:3)
我决定同时使用它们!
简单用例:
为了与TCP
协议进行通信,您必须建立一个连接,只有当您知道两端的IP
和Port
时才能拥有该连接。
如果您在加载应用程序时没有该信息,则使用UDP
广播您的IP
地址以及您打算找到/ a服务器。在向用户提出错误,告知您没有找到服务器或服务器已关闭之前,您可能会尝试大约5次。
在UDP
中发送该邮件会(一次或另一次)到达服务器的UDP
耳朵,现在它将从孤独的客户端IP
知道IP并现在开始通过TCP
进行正确的连接,以便阅读应用程序的关键消息。
您如何看待这种方法?