局域网里的服务器发送数据给客户端用什么协议比较好,UPD还是广播?
现在我有一个服务器OPCServer,负责实时收取PLC的数据,然后可以有多个OPCClient客户端连接到OPCServer,OPCServer收到数据后要将数据转发给所有的客户端,才用什么方式比较好呢?
要求延时在50ms以内。
个人觉得如果 OPCClient和OPCServer用TCP链路,这样Server就要将一个数据,分别发送给多个客户端,就会有
for(int iClient = 0; iClient < iCurClientNum; iClient++)
{
send()
.......
}
这样的逻辑代码,如果客户端稍微多一些,数据稍微发送频率高一些,那么会不会延时较大呢?如果延时较大,线程就会在这个地方耗时比较久, 毕竟循环发数据是有时间消耗的。
这样实时性就差了。
当然用异步socket的话,不会阻塞很久,只要缓冲区空,就会立即发送出去。 当客户端较少的时候,这个时间不知道能不能忽略。
没有做过这一块的,以前都是只转发给一个目标,有多个目标时,如何处理?