投票系统实现(socket套接字)

设备:

web端

投票服务器

主服务器

app端

流程:

1.在直播场景的时候,web端发起投票(一个字典,包括标题,选项,图片等内容),即把数据保存在主服务器数据库,然后把该数据发送给投票服务器(数据大小限制在8K,因为udp网络层给链路层传输的时候大于8k很容易丢包。而setsockopt函数改变的缓冲区只是在网络层修改)。web后端与投票服务器建立udp连接;

2.app端进入直播界面即开始与投票服务器建立tcp连接,监控该连接是否有数据。一旦有数据,及时获取数据,并把该数据展现给app界面,然后把投票结果通过api传给主服务器数据库;

3.投票服务器:

数据:通过udp与web端连接获取数据

对象:通过tcp与多个app客户端建立连接(连接限制在1000个)

遍历对象,给每个对象发送封装的数据,封装数据为:字符型数据长度(4字节,比如0340为340个字节)+ 数据

线程占用的是栈空间,全局变量占用堆空间,一般情况下不会堆栈溢出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值