2

我公司有100多辆车。每辆车都有 Windows Mobile 设备,通过 3G 连接到互联网。

我的任务是编写一个能够与这些车辆实时通信的应用程序。服务器端和客户端。

这是我必须注意的清单。

  • 最小带宽使用。(套接字?TCP还是UDP???)
  • 移动时连接丢失。消息应成功传递。

是否有适合这些要求的协议或服务器应用程序?

问候

巴罗

4

2 回答 2

3

只需使用 HTTP,HTTP 标头的开销不会破坏带宽库。

客户端只需轮询服务器以获取最新消息。如果最新消息与客户端记录的最后一条消息的 ID 差异大于 1,则客户端可以直接请求它丢失的特定消息 ID(可能从丢失的客户端连接等中丢失)。一个通用的 HTTP 处理程序 (ashx) 或 Web 服务 (asmx) 确实是您所需要的。

于 2012-10-25T15:52:11.237 回答
0

对于这种类型的通信场景,socket通信将是最好的选择。为什么 ?

1)。它使用原始字节发生。

2)。有连接通信和无连接通信的选项

3)。.NET 有丰富的 API 来实现套接字通信。

4)。如果与 Rx 和/或 TPL(异步等待)结合使用,它可以以更好的方式处理。

最小带宽使用:TCP 会在实际消息中添加更多的标头字节,然后是 UDP,因为 TCP 是连接(某种)通信套接字类型,并且还具有内部校验和。UDP 将是节省 3G 带宽的最佳选择。

对于连接性和有保证的消息传递确认:我想说的是,选择哪种方法完全取决于您或您的公司。

TCP的优点:由于是连接通信,一旦失去连接,两端都可以知道断开连接并可以再次连接,并且在消息传递方面更加可靠。

UDP 的优点:它的发送和忘记协议,因此它不能保证任何可靠性或内置的连接性,但是由于在您的情况下发送的字节成本很高,因此使用 UDP 将是不错的选择,并使用某种消息协议来实现端到端通信 - 使用响应机制请求/确认。因此,可以手动完成连接和消息接收和发送确认。

于 2012-10-25T16:02:54.927 回答