Java如何基于UDP实现聊天室的功能
发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,这篇文章将为大家详细讲解有关Java如何基于UDP实现聊天室的功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。项目结构data.javapackage udp;i
千家信息网最后更新 2025年11月11日Java如何基于UDP实现聊天室的功能
这篇文章将为大家详细讲解有关Java如何基于UDP实现聊天室的功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
项目结构
data.java
package udp;import java.net.InetAddress;public class data { InetAddress Address; int Port; public InetAddress getAddress() { return Address; } public void setAddress(InetAddress address) { Address = address; } public int getPort() { return Port; } public void setPort(int port) { Port = port; }}服务器端
Server.java
package udp;import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import java.net.SocketException;import java.util.ArrayList;public class Server { DatagramSocket socket = null; ArrayList client; public Server() { try { socket = new DatagramSocket(8888); } catch (SocketException e) { // TODO Auto-generated catch block e.printStackTrace(); } client = new ArrayList(); } public void s_r(){ try { while(true) { byte[] buf = new byte[3000]; //接收数据的数据包 DatagramPacket packet = new DatagramPacket(buf,buf.length); socket.receive(packet); //地址 InetAddress clientAddress = packet.getAddress(); //端口号 int clientPort = packet.getPort(); data d = new data(); d.setAddress(clientAddress); d.setPort(clientPort); int i=0; //判断客户端集合里是否存在发送新消息的客户端 for(;i客户端
package udp;
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import java.net.SocketException;import java.net.UnknownHostException;public class Client { DatagramSocket socket = null; DatagramPacket packet; InetAddress address = null; Client(){ try { socket = new DatagramSocket(); } catch (SocketException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void s_r() { try { // 把表示服务器端IP地址的字符串转换成InetAddress对象 address = InetAddress.getByName("127.0.0.1"); } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } String s = "登陆"; byte[] b = s.getBytes(); packet = new DatagramPacket(b,b.length,address,8888); try { socket.send(packet); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } //发送消息的线程 new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub String sendStr; BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in)); try { while((sendStr = stdIn.readLine())!=null) { byte[] buf = sendStr.getBytes(); packet = new DatagramPacket(buf,buf.length,address,8888); socket.send(packet); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }).start(); //接收消息的线程 new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub byte[] buf_1 = new byte[3000]; // 使用空字节数组构造空数据包 DatagramPacket packet = new DatagramPacket(buf_1,buf_1.length); try { while(true) { socket.receive(packet); String received = new String(packet.getData(),0,packet.getLength()).trim(); System.out.println("接收到的信息:"+received); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }).start(); } public static void main(String[] args) { Client c = new Client(); c.s_r(); } }关于"Java如何基于UDP实现聊天室的功能"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
客户
客户端
数据
地址
消息
篇文章
功能
聊天室
信息
口号
更多
服务器
线程
服务
不错
实用
内容
字符
字符串
字节
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
山东常用软件开发价格表
长葛裕同包装厂软件开发多少钱
服务器返回的状态码 302
java 数据库结果集
宁波工业网络技术信息推荐
服务器热搜
安徽服务器系统托管云主机
网络安全动画照片
软件开发学啥专业
网络安全售后工程师工作计划
服务器往u盘拷东西显示文件过大
服务器不重启修改密码
佛山电商软件开发哪家好
中国电信网络安全认证考试
陕西军工授时模块服务器
数据库应用中什么是数据
小学国家网络安全宣传活动总结
歌尔软件开发工资
宝山区工商数据库系统销售职能
游戏交易app软件开发
office服务器遇到问题
file数据库事件处理
上海景嘉互联网科技有限公司
方舟手游服务器的物品带进单机
仁和有阿里巴巴云数据库吗
西安网络安全培训机构有哪些
塔山计划软件开发
网络安全大专生就业方向
用数据库写的网络聊天室
csgo加载地图一直连接服务器