导航:首页 > 编程语言 > 疯狂java讲义2

疯狂java讲义2

发布时间:2025-09-30 17:55:06

A. 疯狂java讲义:使用MulticastSocket实现多点广播(2)

下面将结合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 编程

lishixin/Article/program/Java/hx/201311/27257

B. 疯狂Java讲义的源码如何导入eclipse运行

Java项目的源代码通过一下四部完成导入到eclipse

1、单击eclipse的file菜单 ,选择 import project from file system

2、在弹出的窗口单击 diretory 按钮 选择Java源代码文件系统所在的目录

3、单击“选择文件夹 ”完成将java源代码导入到eclispe系统

你明白了吗?

C. JAVA零基础者应该看什么书比较好

java 全栈工程师

一个java零基础自学网站分享-我的文章-知乎https://zhuanlan.hu.com/p/47785978

阅读全文

与疯狂java讲义2相关的资料

热点内容
h5网站源码下载 浏览:395
ps文件在电脑上突然就没有了 浏览:516
怎么把几十张照片做成word文件 浏览:483
桌面文件设置成了d盘怎么改回来 浏览:733
电脑d盘里的文件有哪些可以删除 浏览:948
3dmax简单动画教程 浏览:944
数据线中的bit是什么意思 浏览:938
word怎么汇总同名文件 浏览:806
探月编程优势有哪些 浏览:321
疯狂java讲义2 浏览:805
微云文件迅雷下载不了 浏览:206
幼儿刷卡编程和Ai编程哪个难教 浏览:835
word2010样式标题4 浏览:47
政务微信压缩文件 浏览:407
怎么用儿童编程加重力 浏览:640
app无法加载数据什么情况 浏览:135
天威无线猫设置密码 浏览:433
内部储存文件有哪些 浏览:970
把txt文件转为word 浏览:710
编程游戏选什么类型 浏览:326

友情链接