客户端服务端web问题

TCP参数下发

情况是这样: 我这边是C++socket/TCP服务器,然后有几万台客户端长连接我的服务器,这时,web端想对客户端进行参数设置,于是web端连到我的TCP服务器发来它想设置的客户端的ID和设置参数,我这边就需要把web端发来的设置参数转发到对应的那台客户端上.


那么问题来了:我要怎么在几万台客户端中把设置参数send到指定的这台客户端,因为我的服务器是接到客户端发来的数据才做应答,算被动模式的,怎么才能做到主动下发命令到指定的客户端呢? 我初步思路是当客户端连上来后我把socket连接ID和客户端ID保存下来,然后想主动下发的时候去查找连接ID,直接send命令,这样可以吗?如果可以,那这个socket连接ID和客户端ID要保存在哪里才能快速响应主动下发?

 

 

客户端定时发送心跳包给服务器端,服务器端如果没什么可让客户端干的,就仅返回心跳验证包,否则发心跳验证附带命令,客户端收到心跳验证附带命令包后,执行对应命令。

 

你的方法可以,这个socket连接ID和客户端ID保存在内存里用map容器保存就可以了

 

用TList类型或结构就可以保存了,用的时候轮循即可。几万台客户端同时连接很夸张的,这种情况下最好不要使用长连接,最好是参照QQ使用UDP类协议

如果是长连接,有两种方式实现呼叫客户端,一种是向客户端的监听端口发送指令包,一种是使用DataSnap的调用客户端代码的功能

 

转载于:https://www.cnblogs.com/hshy/p/10616085.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值