知识大全 使用MulticastSocket实现多点广播(2)
Posted 知
篇首语:学向勤中得,萤窗万卷书。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 使用MulticastSocket实现多点广播(2)相关的知识,希望对你有一定的参考价值。
疯狂Java讲义:使用MulticastSocket实现多点广播(2) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
下面将结合MulticastSocket和DatagramSocket开发一个简单的局域网内的即时通信工具 局域网内每个用户启动该工具后 就可以看到该局域网内所有在线用户 他也会被其他用户看到 即看到如图 所示的窗口
在图 的用户列表中双击任意一个用户 即可启动一个如图 所示的交谈窗口
图 局域网聊天工具
图 与特定用户交谈
如果双击图 所示用户列表窗口中 所有人 列表项 即可启动一个与图 相似的交谈窗口 不同的是通过该窗口发送的消息将会被所有人看到
该程序的实现思路是每个用户都启动 个Socket 一个MulticastSocket 一个DatagramSocket
其中MulticastSocket会周期性地向 发送在线信息 且所有用户的MulticastSocket都会加入到 这个多点广播IP中 这样每个用户都可以收到其他用户广播的在线信息 如果系统经过一段时间没有收到某个用户广播的在线信息 则从用户列表中删除该用户 除此之外 该MulticastSocket还用于向所有用户发送广播信息
DatagramSocket主要用于发送私聊信息 当用户收到其他用户广播来的DatagramPacket时 即可获取该用户MulticastSocket对应的SocketAddress 这个SocketAddress将作为发送私聊信息的重要依据 本程序让MulticastSocket在 端口监听 而DatagramSocket在 端口监听 这样程序就可以根据其他用户广播来的DatagramPacket得到他的DatagramSocket所在的地址
本系统提供了一个UserInfo类 该类封装了用户名 图标 对应的SocketAddress以及该用户对应的交谈窗口 失去联系的次数等信息 该类的代码片段如下
程序清单 codes/ / /LanTalk/UserInfo java
public class UserInfo
//该用户的图标
private String icon;
//该用户的名字
private String name;
//该用户的MulitcastSocket所在的IP和端口
private SocketAddress address;
//该用户失去联系的次数
private int lost;
//该用户对应的交谈窗口
private ChatFrame chatFrame;
public UserInfo()
//有参数的构造器
public UserInfo(String icon String name SocketAddress address int lost)
this icon = icon;
this name = name;
this address = address;
this lost = lost;
//此处省略了该类所有属性的setter和getter方法
…
//使用address作为该用户的标识 所以根据address作为
//重写hashCode()和equals方法的标准
public int hashCode()
return address hashCode()
public boolean equals(Object obj)
if (obj != null && obj getClass()==UserInfo class)
return ((UserInfo)obj) getAddress() equals(address)
return false;
返回目录 疯狂Java讲义
编辑推荐
Java程序性能优化 让你的Java程序更快 更稳定
新手学Java 编程
cha138/Article/program/Java/hx/201311/27257相关参考
知识大全 使用MulticastSocket实现多点广播(3)
疯狂Java讲义:使用MulticastSocket实现多点广播(3) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶
知识大全 使用MulticastSocket实现多点广播(4)
疯狂Java讲义:使用MulticastSocket实现多点广播(4) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶
二锅头 1公共建筑应设有线广播系统。系统的类别应根据建筑规模、使用性质和功能要求确定。有线广播一般可分为: (1)业务性广播系统。 (2)服务性广播系统。 (3)火灾事故广播系统。 2办
二锅头 1公共建筑应设有线广播系统。系统的类别应根据建筑规模、使用性质和功能要求确定。有线广播一般可分为: (1)业务性广播系统。 (2)服务性广播系统。 (3)火灾事故广播系统。 2办
1.公共建筑应设有线广播系统。系统的类别应根据建筑规模、使用性质和功能要求确定。有线广播一般可分为: (1)业务性广播系统。 (2)服务性广播系统。 (3)火灾事故广播系统。 2.办公楼、商业
1.公共建筑应设有线广播系统。系统的类别应根据建筑规模、使用性质和功能要求确定。有线广播一般可分为: (1)业务性广播系统。 (2)服务性广播系统。 (3)火灾事故广播系统。 2.办公楼、商业
1、火灾时应能在消防控制室将火灾疏散层的扬声器和公共广播扩音机强制转入火灾应急广播状态。 2、消防控制室应能监控用于火灾应急广播时的扩音机的工作状态,并应具有遥控开启扩音机和采用传声器播音的功能
1、火灾时应能在消防控制室将火灾疏散层的扬声器和公共广播扩音机强制转入火灾应急广播状态。 2、消防控制室应能监控用于火灾应急广播时的扩音机的工作状态,并应具有遥控开启扩音机和采用传声器播音的功能
1、控制中心报警系统、集中报警系统宜设置火灾应急广播; 2、民用建筑内扬声器应设在走道和大厅等公共场所; 3、火灾时应能将火灾疏散层的场声器和公共广播强制专转入火灾应急广播状态; 4、消控室
1、控制中心报警系统、集中报警系统宜设置火灾应急广播; 2、民用建筑内扬声器应设在走道和大厅等公共场所; 3、火灾时应能将火灾疏散层的场声器和公共广播强制专转入火灾应急广播状态; 4、消控室