介绍
基于JavaFx实现聊天室,消息序列化采用fastjson。有广播与单播两中发送消息的方式。
效果图
原理图
- 退出
- 发送消息
- 广播
- 登录
消息类型
主要代码
while(true)
{
byte [] buf = new byte [1027];
DatagramPacket packet = new DatagramPacket(buf, 1024);
socket.receive(packet);//接受消息
int len = packet.getLength();
String str = new String(buf, 0, len,"UTF-8");
System.out.println(str);
msg.appendText(str + "\n");//在图形界面输出接受到的消息
JSONObject jObject = JSONObject.parseObject(str);
int type = jObject.getInteger("type");//获取消息类型
if(type == MsgType.LOGIN){
//若为登录消息,则将用户数加一作为用户ID
count += 1;
User u = new User(count, packet.getAddress(), packet.getPort());
login(u);