我制作了 TCP 套接字服务器应用程序。
嵌入式 GSM 模块设备通过 TCP/IP 协议连接到 GSM 线路上,每 1 分钟发送大约 140 字节的数据。我解析这 140 字节数据并将其保存在数据库中。
有时所有客户端都断开连接,服务器应用程序被锁定(冻结),然后设备无法重新连接。(如果断开连接,所有设备都会自动重新连接)
try
AContext.Connection.IOHandler.DefStringEncoding: = IndyTextEncoding_UTF8;
// clean buffer
SetLength (RCIdByte, 0);
// read incoming packet
AContext.Connection.IOHandler.ReadBytes (RCIdByte, -1);
IdTcpServer1.Contexts.Locklist;
if Length (RCIdByte)> 0 then
begin
...
//parse and insert into database
...
end;
finally
IdTcpServer1.Contexts.Unlocklist;
end;
顺便说一下,平台(Linux 或 Windows)数据库服务器 PostgreSQL(9、5 或 10),数据库连接组件 uniDAC
从技术上讲,它与计算机上的本地端口数量一样多(65500+),但在实时应用环境中情况有所不同。
1 分钟的时间短吗?设备总数现在是 4 个,但将来会达到 500 个或 1500 个