恭喜,你发布的帖子
发布于 2024-07-14 12:51:50
21楼
作为功能来说,MB-TCP SERVER的确是可以主动断开连接的,实际上就是拒绝服务,但实际通信应用中,SERVER是不可以主动断开连接的,因为SERVER无法知道本次连接的CLIENT有几个通信任务,什么时候可以结束通信服务,因此只有CLIENT在对一个SERVER访问的任务都结束后是可以主动断开连接的,但SERVER却不行。
此外,CLIENT之间是背靠背的,无法协调的,在多个CLIENT对同一个SERVER的周期性访问的场景下,如果没有特殊的手段其实就是单纯的竞争关系,通信的频率,网络的结构与性能会直接影响到某个CLIENT连接到SERVER的概率。
所以,在西门子实际的通信应用中,并不建议用一个逻辑SERVER对多个CLIENT的访问,这是多个项目实践下来的经验教训
是的。多客户端连接一个服务器时,没有一对一的固定连接那么方便、易用。一对一的固定连接即便物理断网、重连;都是自动的。无须任何断开连接的操作。
在多客户端连接一个服务器时,主要针对这类间隔较大的偶发连接。
不但每一客户端都应在完成读、写(通常是一对写、读过程)主动断开连接。而且在MB TCP服务器侧也要应对长时间客户端未能断开连接的措施。断开完成 它可能是在链路上丢失了、也可能某客户端“呆”了。
若没有在服务器侧采取措施,那么 多客户端通讯就会停滞在那里。
请填写推广理由:
分享
只看
楼主