导航:首页 > 编程语言 > 疯狂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相关的资料

热点内容
网络中常用的传输介质 浏览:518
文件如何使用 浏览:322
同步推密码找回 浏览:865
乐高怎么才能用电脑编程序 浏览:65
本机qq文件为什么找不到 浏览:264
安卓qq空间免升级 浏览:490
linux如何删除模块驱动程序 浏览:193
at89c51c程序 浏览:329
怎么创建word大纲文件 浏览:622
袅袅朗诵文件生成器 浏览:626
1054件文件是多少gb 浏览:371
高州禁养区内能养猪多少头的文件 浏览:927
win8ico文件 浏览:949
仁和数控怎么编程 浏览:381
项目文件夹图片 浏览:87
怎么在东芝电视安装app 浏览:954
plc显示数字怎么编程 浏览:439
如何辨别假网站 浏览:711
宽带用别人的账号密码 浏览:556
新app如何占有市场 浏览:42

友情链接