读书人

[AnyShare] UDP局域网发现 广播方式实

发布时间: 2013-12-13 00:50:19 作者: rapoo

[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得设备踢走。

?

读书人网 >移动开发

热点推荐