我有一个非常具体的客户端-服务器设计案例,我想询问 建议。任务是用新的技术增强现有系统 功能。
系统由具有公网IP的服务器、10- 1000 个具有动态 IP 的 CLDC 客户端,以及一个设备 通过串行端口(COM)与服务器通信。
客户端(J2ME):
登录服务器并保持登录状态,自发询问 服务器获取一些数据,但主要是等待服务器请求。客户是 (可能是,首先想到的)负责保持与服务器的连接 还活着。
服务器(最好是Windows,Java):
等待客户端 连接、存储和维护所有客户端连接(如果服务器 想要向客户端发送请求,因为客户端有动态 IP 地址)。服务器存储来自 COM 设备的数据。等待 来自客户的请求并为他们提供所需的(先前存储的) 数据。它还等待 COM 设备请求。
COM设备:
为服务器提供 数据(这是客户自发要求的数据)。它还发送 请求(服务器应将这些请求传递给特定客户端)。 COM 设备驱动整个系统。
我需要设计的是服务端和客户端的软件。串口设备 是不可改变的。
您对这里的最佳方法有什么建议吗?
问候!
请您参考如下方法:
J2ME
我开发了许多涉及 J2ME 和后端的系统。您需要注意的一件事是,服务器持有的客户端连接可能并不总是“开放”,因为 GPRS/3G 不是很可靠(取决于服务提供商/国家/地区)。所以你是对的,客户端负责保持连接打开。
服务器
一般来说,您可以将其视为普通的多线程套接字服务器。
在 Windows 系统上(假设您使用 Java 编程),请查看以文件名“COM1”打开 java.io.File 以便与串行设备进行通信。这将使您的生活变得更加轻松,而不是真正进行 native 串行通信。
这看起来很简单,所以我不确定可以提出什么建议。