最近比较闲,一直在抽空回顾一些java方面的技术应用。
今天没什么事做,基于udp协议,写了一个非常简单的聊天室程序。
现在的工作,很少用到socket,也算是对java网络编程方面的一个简单回忆。
先看一下效果:
实现的效果可以说是非常非常简单,但还是可以简单的看到一个实现原理。
“聊天室001”的用户,小红和小绿相互聊了两句,“聊天室002”的小黑无人理会,在一旁寂寞着。
看一下代码实现:
1、首先是消息服务器的实现,功能很简单:•将客户端的信息(进入了哪一个聊天室等)进行登记;
•构造udp协议套接字对象,接受各个客户端发送的消息;
•解析消息内容,将聊天信息推送回对应聊天室的各个客户端;
package com.tsr.simplechat.receive_server;
import java.io.ioexception;
import java.net.datagrampacket;
import java.net.datagramsocket;
import java.net.socketexception;
import java.util.arraylist;
import java.util.hashmap;
import com.google.gson.gson;
import com.tsr.simplechat.bean.messageentity;
import com.tsr.simplechat.client.chatclient;
//聊天服务器
public class chatserver extends thread {
// 程序占用端口号
private static final int port = 10000;
// 消息接受套接字对象
private static datagramsocket server = null;
// 字典对象(key:聊天室id,value:该聊天室下的客户端用户集合);
private static hashmap> groups = new hashmap>();
// 构造器
public chatserver() {
try {
// 消息接受套接字对象的构造初始化
server = new datagramsocket(port);
} catch (socketexception e) {
e.printstacktrace();
}
}
// 注册聊天室新登录用户
public static void logingroup(string groupid, chatclient client) {
//