[AnyShare] UDP局域网发现 广播方式实现笔记
?文件传输部分:
?
侦听端口:2999,这只是一个建议端口,有可能被其他程序占用,如果占用,就用一个for循环一次向后查询,取得第一个没有被占用的端口。
?
///////////////////////////////////////////////
?
为什么ap+wifi模式要分成 ClientMessageChannel和ServerMessageChannell,而PeerMessageChannell只有一种。
?
ap+wifi,client端可以知道ap得ip,而不能知道其他client得ip,这样ap端就是一个中介,去分发这些数据。
局域网模式就不一样了,他通过UDP广播包,所有用户都可以收到消息,所以不用区分client和server。每个点都启动一个serverPipe就行了。
?
////////////////////////
?
分成两个部分
?
接收端:起了一个while循环,等待接收广播
?
超时时间 1000ms
缓冲区大小 ?1024
端口号 55526
?
?
广播端:简单实现单个消息得发送逻辑
?
Ip ??255.255.255.255 ?//发送给所有网络内得主机
?
为了保证消息可以送到,重复发送三次,每次间隔100ms
?
?
局域网发现得管理者:
?
上线或者下线都会发送广播,但意外下线没有广播,这里引入了一个心跳机制
?
作为client,每隔20s发送一个心跳包
作为server,每隔20s检测一次设备得超时状态,并将超时超过60s得设备踢走。
?