Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi DataSnapXE广播消息错误_Delphi_Broadcast_Datasnap_Onerror - Fatal编程技术网

Delphi DataSnapXE广播消息错误

Delphi DataSnapXE广播消息错误,delphi,broadcast,datasnap,onerror,Delphi,Broadcast,Datasnap,Onerror,我有一个使用TCP/IP的DatasnapXE客户机服务器应用程序。服务器使用TDSServer.broadcastmessage向客户端广播消息 如果某个用户由于某种原因不再可用,DSServer将触发OnError事件 在OneRor中,我无法确定如何确定哪个用户已关机?有可能吗 致以最良好的祝愿, Kiril Hadjiev在XE中没有简单/明显/内置的确定方法。您可以实现一些东西来实现这一点,但它可能没有您想要的那么优雅。例如,您可以让服务器查询所有连接的客户端,并让它们回复说它们仍然存

我有一个使用TCP/IP的DatasnapXE客户机服务器应用程序。服务器使用TDSServer.broadcastmessage向客户端广播消息 如果某个用户由于某种原因不再可用,DSServer将触发OnError事件

在OneRor中,我无法确定如何确定哪个用户已关机?有可能吗

致以最良好的祝愿,
Kiril Hadjiev

在XE中没有简单/明显/内置的确定方法。您可以实现一些东西来实现这一点,但它可能没有您想要的那么优雅。例如,您可以让服务器查询所有连接的客户端,并让它们回复说它们仍然存在。消除过程将引导您找到断开连接的客户端

其中一个主要问题是XE存在一个bug,它阻止会话管理使用TCP连接。否则,您可以导航活动会话(其中可能包含用户/客户端信息),以查看缺少哪些会话

此外,XE不支持TCP保持活动设置,这在TCP连接被切断(例如,网络电缆被拔下)但仍处于打开状态的情况下非常有用。如果没有Keep Alive,只有当你试图给客户写东西时,你才知道客户已经不在了

在RAD Studio/DataSnap的未来版本中,您可能会发现您想要轻松实现这一点的功能是可用的


Mat

在XE中没有简单/明显/内置的方法来确定这一点。您可以实现一些东西来实现这一点,但它可能没有您想要的那么优雅。例如,您可以让服务器查询所有连接的客户端,并让它们回复说它们仍然存在。消除过程将引导您找到断开连接的客户端

其中一个主要问题是XE存在一个bug,它阻止会话管理使用TCP连接。否则,您可以导航活动会话(其中可能包含用户/客户端信息),以查看缺少哪些会话

此外,XE不支持TCP保持活动设置,这在TCP连接被切断(例如,网络电缆被拔下)但仍处于打开状态的情况下非常有用。如果没有Keep Alive,只有当你试图给客户写东西时,你才知道客户已经不在了

在RAD Studio/DataSnap的未来版本中,您可能会发现您想要轻松实现这一点的功能是可用的


Mat

您最终找到解决方案了吗?当客户端“不正常”断开连接时,我们无法检测到同样的问题。您最终找到解决方案了吗?当客户端“不正常”地断开连接时,我们无法检测到同样的问题。