Java如何基于UDP实现聊天室的功能
发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,这篇文章将为大家详细讲解有关Java如何基于UDP实现聊天室的功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。项目结构data.javapackage udp;i
千家信息网最后更新 2024年11月23日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安全错误
数据库的锁怎样保障安全
中华人民网络安全法pdf
面试中网络安全的问题
即墨区分销软件开发服务公司
电脑网络技术员岗位职责
哪个软件开发孩子智力
镇江企业软件开发价格咨询
软件开发 项目经费预算表
华为数据库网络安全产品
罗湖网络安全建设
好玩吧软件开发app
登记数据库
论文中数据库范式怎么体现
上海酷宝网络技术
广东省 网络安全学院
软件开发如果独立赚钱
黑龙江边缘计算服务器
网络安全工作专题会议制度
我身边的网络安全故事是什么意思
做网络安全工作需要资质认证吗
万象网管2008数据库
8e数据库q绑下载
中国移动的网络技术类
远程监视软件开发
彩虹六号怎么换服务器
微信记录腾讯服务器后台保存多久
人才是网络安全第一要务
数据库连接 保持连接实现
软件开发项目开票内容
云服务器实例是什么意思
gpu服务器可以干嘛