UDP广播会不会占有太多带宽?(100分)

  • 主题发起人 主题发起人 风清杨
  • 开始时间 开始时间

风清杨

Unregistered / Unconfirmed
GUEST, unregistred user!
我最近写了一个局域网聊天程序,用了IdUdpServer控件,
用了心跳函数,每分钟每个客户端都会发送一个Broadcast,大概70个客户端,
传送20B的数据,我想问下这样的方式会不会占用太多局域网的带宽?
如果会的话那有没有更好的方法实现知道各个客户端在线呢?
 
局域网的广播包并不占太多资源,HUB/交换机物理上不是1个1个发的,所以开销并不大,一般的对等网应用就是类似lz的做法
另外的做法就是:新用户发一个广播包,相当于“你们都在哪?”,然后大家各向他发一个包告诉他。
魔兽/星际等局域网游戏是由建主机的用户来发的,相当于问“谁要加入?”,其他用户收到了消息可以加入,类似C/S方式
如果想减少广播包,可以设一台常开的“主机”或者选择第一个建聊天房间的人或者加入的人来建“主机”相当于服务器,由“主机”来发广播包:包括新用户加入和离开等消息,其他人与“主机”用非广播方式通讯;然后心跳包由主机来发,相当于问“你还在吗?”
 
谢谢关注,其实我也想过类过楼上的提议的方法,
不过这样的那个服务端程序要很稳健,如果服务端出错,那所有客户的上下线就没人知道了,
我现在改成三分钟一次,明天再叫网管测试网络有没有受影响.
 
后退
顶部