Java如何基于UDP实现聊天室的功能
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,这篇文章将为大家详细讲解有关Java如何基于UDP实现聊天室的功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。项目结构data.javapackage udp;i
千家信息网最后更新 2025年01月20日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安全错误
数据库的锁怎样保障安全
浙江安防时间频率同步服务器
无线网络技术填空题答案
做软件开发私活多吗
数据库迁移文档怎么写
软件开发的价值说明
广东网络技术转移质量服务
网络安全题库excel
2018网络安全试卷8
唱吧服务器
数据库分离出来的软件
上海前端软件开发定做
佛山水费网上缴费软件开发团队
云服务器和算力服务
涉及网络安全业务的上市公司
中原银行网络安全助手
连接数据库显示连接超时
使命召唤战区服务器突然断开
美剧星球的服务器在哪里
数据库上机考试怎么交
群英云服务器好便宜
合作方服务器清理考核办法
云南定制软件开发
联想服务器默认ip和密码
服务器无法上网排查
四川英语成绩数据库
商银信联软件开发证书
曹妃甸区媒体网络技术不二之选
河北软件开发者企业
众畅软件开发有限公司
西昌软件开发招聘