2

在过去的两天里,我阅读了关于 Indy和协议的每个StackOverflow问题和答案(当然还有谷歌搜索) ,以便决定在我的用户应用程序和我的 Windows 服务之间的通信方法中应该使用哪一个。TCPUDP

从我目前看到的情况来看,UDP它是最简单也是唯一一个我设法从其接收广播消息的TidUDPClient(我还没有测试回复)。而且我还注意到TCP它的线程循环有点复杂。

但是,由于我被告知UDP的所有地方都不可靠,UDP不可靠......我开始怀疑TCP无论如何使用它是不是更好。

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

我需要广播功能,因此我的服务器会立即通知所有客户端有关应用程序更新的信息,当然,如果我的客户端应用程序不知道IP服务/服务器在哪个位置,它将发送一个广播调用以告知服务器在哪里。这适用于TCP吗?


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

e86c6234bf117b97d6d4a0c5c317bbc75a3282dfd34b95446fc6e26d46239327f2f1db352b2f796e95dccd9f99403adf5eda7ba8

4

1 回答 1

3

我决定同时使用它们!

简单用例:

为了与TCPprococol 通信,您必须建立一个连接,只有在您知道IP并且Port在两端都可以拥有该连接。

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

发送该消息UDP将(一次或其他时间)到达服务器的UDP耳朵,服务器现在将知道来自孤独客户端的 IP,IP并且现在将开始正确的连接,TCP以便阅读有关应用程序的关键消息的讨论。

您如何看待这种方法?

于 2013-08-06T02:02:09.593 回答