「java聊天室实验报告」java聊天室实训报告
今天给各位分享java聊天室实验报告的知识,其中也会对java聊天室实训报告进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、计算机毕业设计选择哪个?
- 2、用JAVA 编写简单网络聊天程序
- 3、java聊天室给你发个我以前做过的吧 存为test。java import java.net.*; import java.io.*; import javax.sw
- 4、用java语言实行一个UDP聊天室 多客户 无图形用户界面
计算机毕业设计选择哪个?
毕业季马上到来,我相信很多人都已经在筹备毕业设计选题了,肯定有很多迷茫和不懂的学生,其实毕业设计并没有大家想的那么难,只要找对方法,方式,您可以很顺利的完成的自己的毕业设计作品,
1:先结合自身所学知识进行选取毕设方向,(例如:软件工程,网络技术,)
2:假设选定软件工程:那么包含了很多的开发语言。例如:Java php asp python 安卓,小程序等
3:选定开发语言后需要选定数据库软件:例如mysql sqlserver 选题有很多:
以下为JavaWeb方面的例子(更多题目请参考 ,下面介绍的项目都可以在这里找到源码)
----jd----
1-CRM客户关系管理系统-ssh
2-户籍管理系统-jsp
3-Java聊天室的设计与实现-swing
4-进销存管理系统的设计与实现-springboot
5-超市积分管理系统-jsp
6-基于JSP的网上购书系统-ssh
7-基于SSH的婴幼儿产品销售系统的开发与设计
8-基于WEB的网上购物系统的设计与实现-ssh源码
9-网上手机销售系统-jsp
10-Java网上体育商城的设计与实现-ssh
11-基于JSP+Servlet开发高校社团管理系统
12-Java在线考试系统-ssh
13-java开发电影订票网站系统-ssh14-JavaWeb校园二手平台项目+论文-ssh
15-百货中心供应链管理系统+论文-ssh
16-固定资产管理系统+论文-ssh
17-网络考试系统的设计与实现+论文-jsp
18-基于JSP+Servlet开发简单的新闻发布系统
19-基于JSP+Servlet开发在线租车系统
20-基于JSP+Servlet开发火车票网上订票系统
21-基于JSP+Servlet开发简单的医院预约挂号系统
22-基于SSM开发在线考试系统
23-基于Struts2开发公司职工管理系统+说明书+任务书+方案书
24-基于S2SH开发彩票购买系统的设计与实现毕业设计+论文
25-基于Struts2+Hibernate开发小区物业管理系统
26-基于S2SH开发学生考勤管理系统+报告
27-基于S2SH开发车辆租赁管理系统的设计与实现+论文
28- 基于S2SH开发银行个人业务管理系统
29-基于JavaSwing开发简单的银行管理系统
30-基于JavaSwing开发银行信用卡管理系统
31-基于JSP+Servlet开发简单的家居购物商城系统
32-基于JSP+Servlet开发手机销售购物商城系统
33-基于JSP+Servlet开发物流管理系统
34-基于JSP机票预定系统
35-基于S2SH开发病房管理系统的设计与实现
36-基于S2SH开发就业招聘管理系统
37-基于S2SH开发图书管理系统(新本版)+论文
38-基于S2SH开发学生公寓(宿舍)管理系统
39-基于SSM开发大学食堂采购管理系统
40-基于SSM开发学生信息管理系统
41-基于SSM开发在线家教预约系统
42-基于SSM开发自行车在线租赁管理系统
43-基于Struts2+Hibernate开发社区蔬菜、食品交易平台+论文
44-基于Struts2开发快递收发系统
45-基于Struts2开发校园二手购物商城
46-基于Struts2开发学生信息管理系统
47-基于Struts2开发学生宿舍管理系统
48-基于JSP+Servlet+bootstrap开发电影院购票系统
49-基于JSP+Servlet开发学生成绩管理系统+实验报告
50-基于JSP+Servlet开发超市日常管理系统
51-基于JSP+Servlet开发开放实验室预约系统+论文
52-基于JSP+Servlet开发网上服装销售购物商城系统+论文+PPT+任务书+检查表
53-基于JSP+Servlet开发旅游(景点宾馆)系统
54-基于JSP+Servlet开发图书管理系统+PPT+讲解视频
55-基于JSP+Servlet开发学生选课系统+论文
56-基于JSP开发云餐厅自助点餐系统(前台+后台) 讲解视频
57-基于JSP+Servlet开发药品管理系统
58-基于JSP+Servlet开发快递管理系统+UML图
59-基于JSP+Servlet开发小型酒店管理系统的设计与实现
60-基于JSP+Servlet开发在线聊天系统+论文+PPT
61-基于JSP+Servlet开发教师工资管理系统
62-基于JSP+Servlet开发汽车配件销售管理系统的设计与实现+论文
63-基于SSM开发仓库库存管理系统
64-基于SSM开发学生请假管理系统
65-基于S2SH开发彩票购买系统的设计与实现毕业设计+论文
66-基于SSM开发餐饮业点餐系统
67-基于SSM开发学生信息管理系统
68-基于SSM开发校园外卖零食购物商城系统
69-基于S2SH开发医院挂号预约系统
70-基于S2SH开发企业人事管理系统(新本版)
71-基于S2SH开发学生公寓(宿舍)管理系统
72-基于S2SH开发网上书店购物商城系统
73-基于S2SH开发学生宿舍管理系统
74-基于S2SH开发校园失物招领网+论文
75-基于S2SH开发教师科研项目管理系统
76-基于SpringMVC+Hibernate开发库存(仓库)管理系统
77-基于S2SH开发都匀房屋租售(租赁)系统+论文
78-基于SSH开发学生宿舍(公寓)管理系统+论文
79-基于SSM开发教务查询管理系统
80-基于SSM开发药店(药品)管理系统
81-基于S2SH开发宠物之家在线宠物购买系统(前台+后台)+论文
82-基于SSM开发行政服务管理系统
83-基于S2SH开发网上预约预约挂号系统
84-基于SSM开发高校共享单车管理系统
85-基于S2SH开发网上蛋糕店(甜品)购物商城系统
86-基于S2SH开发在线聊天系统(群聊)
87-基于SSM开发在线学习网站(前台+后台)
88-基于SSM开发网上书店商城购物系统
89-基于S2SH开发在线学堂系统(课程学习网站 前台+后台)
90-基于Struts开发在线音乐播放网站
91-基于S2SH开发图书管理系统
92-基于S2SH开发酒店点餐管理系统+论文
93-基于S2SH开发人力资源管理系统
94-基于S2SH开发房屋租赁管理系统
95-基于S2SH开发酒店管理系统+论文
96-基于S2SH开发网上鲜花(花店)商城的设计与实现+论文
97-基于S2SH开发医院信息管理系统
98-基于SSH开发高校选课系统的设计与实现+论文
99-基于SSH网上招聘系统+论文+任务书+PPT
100-基于JSP+Servlet开发收费停车场管理系统+论文101-javaweb垃圾分类查询系统源码 ssm+mysql
102-基于SSM开发医药管理系统
103-基于S2SH开发房地产管理系统
104-基于S2SH开发化妆品销售系统(购物商城 前台+后台)
105-基于SSM开发校园外卖零食购物商城系统(前台+后台)
106-基于S2SH开发中小学在线教育系统(前台+后台)107-基于JSP+Servlet开发失物招领系统
108-基于JSP+Servlet开发球队活动管理系统
109-基于JSP+Servlet开发公交在线查询
110-基于JSP开发Java在线学习平台
111-基于Struts2开发宠物领养系统的设计与实现+论文
112-基于Struts+Hibernate开发水果4S店营销(购物商场)管理系统的设计与实现+论文
113-基于S2SH开发农产品网上销售系统(购物商城 前台+后台)
114-jsp考勤管理系统-ic
115-jsp失物招领系统-ic
116-ssm毕业设计管理系统-ic
117-基于JSP的美食网站食谱网站、javaweb源码-cs
118-基于JSP的旅游信息发布网站、jsp+servlet+mysql+论文-cs
119-基于JSP的小说网站-cs
120-基于SSH的航空订票系统-cs
122-基于springboot的企业资产管理系统源码-cs
123-SSM实现类似京东的3C电子商城系统-cs
124-SSM实现复杂权限控制的教务管理,教务评教系统-cs
125-JavaWeb开发ssm在线考试系统-cs
126-基于SpringBoot的博客系统-cs
127-基于SSM的校园二手交易平台-cs
128-JSP高校社团管理系统
源码及原文链接:;tid=17
用JAVA 编写简单网络聊天程序
/**
* 基于UDP协议的聊天程序
*
* 2007.9.18
* */
//导入包
import java.awt.*;
import java.awt.event.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import java.net.*;
public class Chat extends JFrame implements ActionListener
{
//广播地址或者对方的地址
public static final String sendIP = "172.18.8.255";
//发送端口9527
public static final int sendPort = 9527;
JPanel p = new JPanel();
List lst = new List(); //消息显示
JTextField txtIP = new JTextField(18); //填写IP地址
JTextField txtMSG = new JTextField(20); //填写发送消息
JLabel lblIP = new JLabel("IP地址:");
JLabel lblMSG = new JLabel("消息:");
JButton btnSend = new JButton("发送");
byte [] buf;
//定义DatagramSocket的对象必须进行异常处理
//发送和接收数据报包的套接字
DatagramSocket ds = null;
//=============构造函数=====================
public Chat()
{
CreateInterFace();
//注册消息框监听器
txtMSG.addActionListener(this);
btnSend.addActionListener(this);
try
{
//端口:9527
ds =new DatagramSocket(sendPort);
}
catch(Exception ex)
{
ex.printStackTrace();
}
//============接受消息============
//匿名类
new Thread(new Runnable()
{
public void run()
{
byte buf[] = new byte[1024];
//表示接受数据报包
while(true)
{
try
{
DatagramPacket dp = new DatagramPacket(buf,1024,InetAddress.getByName(txtIP.getText()),sendPort);
ds.receive(dp);
lst.add("【消息来自】◆" + dp.getAddress().getHostAddress() + "◆"+"【说】:" + new String (buf,0,dp.getLength()) /*+ dp.getPort()*/,0);
}
catch(Exception e)
{
if(ds.isClosed())
{
e.printStackTrace();
}
}
}
}
}).start();
//关闭窗体事件
this.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent w)
{
System.out.println("test");
int n=JOptionPane.showConfirmDialog(null,"是否要退出?","退出",JOptionPane.YES_NO_OPTION);
if(n==JOptionPane.YES_OPTION)
{
dispose();
System.exit(0);
ds.close();//关闭ds对象//关闭数据报套接字
}
}
});
}
//界面设计布局
public void CreateInterFace()
{
this.add(lst,BorderLayout.CENTER);
this.add(p,BorderLayout.SOUTH);
p.add(lblIP);
p.add(txtIP);
p.add(lblMSG);
p.add(txtMSG);
p.add(btnSend);
txtIP.setText(sendIP);
//背景颜色
lst.setBackground(Color.yellow);
//JAVA默认风格
this.setUndecorated(true);
this.getRootPane().setWindowDecorationStyle(JRootPane.FRAME);
this.setSize(600,500);
this.setTitle("〓聊天室〓");
this.setResizable(false);//不能改变窗体大小
this.setLocationRelativeTo(null);//窗体居中
this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
this.setVisible(true);
txtMSG.requestFocus();//消息框得到焦点
}
//===============================Main函数===============================
public static void main(String[]args)
{
new Chat();
}
//================================发送消息===============================
//消息框回车发送消息事件
public void actionPerformed(ActionEvent e)
{
//得到文本内容
buf = txtMSG.getText().getBytes();
//判断消息框是否为空
if (txtMSG.getText().length()==0)
{
JOptionPane.showMessageDialog(null,"发送消息不能为空","提示",JOptionPane.WARNING_MESSAGE);
}
else{
try
{
InetAddress address = InetAddress.getByName(sendIP);
DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName(txtIP.getText()),sendPort);
ds.send(dp);
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
txtMSG.setText("");//清空消息框
//点发送按钮发送消息事件
if(e.getSource()==btnSend)
{
buf = txtMSG.getText().getBytes();
try
{
DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName(txtIP.getText()),sendPort);
}
catch(Exception ex)
{
ex.printStackTrace();
}
txtMSG.setText("");//清空消息框
txtMSG.requestFocus();
}
}
}
java聊天室给你发个我以前做过的吧 存为test。java import java.net.*; import java.io.*; import javax.sw
package tf.thread;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ChatServer {
private static final int PORT = 8888; // 端口号
private static ListSocket list = new ArrayListSocket(); // 保存连接对象
private ExecutorService exec;
private ServerSocket server;
public static void main(String[] args) {
new ChatServer();
}
public ChatServer() {
try {
server = new ServerSocket(PORT);
exec = Executors.newCachedThreadPool();
System.out.println("服务器已启动!");
Socket client = null;
while (true) {
client = server.accept(); // 接收客户连接
list.add(client);
exec.execute(new ChatTask(client));
}
} catch (IOException e) {
e.printStackTrace();
}
}
static class ChatTask implements Runnable {
private Socket socket;
private BufferedReader br;
private PrintWriter pw;
private String msg;
public ChatTask(Socket socket) throws IOException {
this.socket = socket;
br = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
msg = "【" + this.socket.getInetAddress() + "】进入聊天室!当前聊天室有【"
+ list.size() + "】人";
sendMessage();
}
public void run() {
try {
while ((msg = br.readLine()) != null) {
if (msg.trim().equals("bye")) {
list.remove(socket);
br.close();
pw.close();
msg = "【" + socket.getInetAddress() + "】离开聊天室!当前聊天室有【"
+ list.size() + "】人";
socket.close();
sendMessage();
break;
} else {
msg = "【" + socket.getInetAddress() + "】说:" + msg;
sendMessage();
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 群发消息给聊天室的所有人
*/
private void sendMessage() throws IOException {
System.out.println(msg);
for (Socket client : list) {
pw = new PrintWriter(client.getOutputStream(), true);
pw.println(msg);
}
}
}
package tf.thread;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ChatClient {
private static final int PORT = 8888;
private static ExecutorService exec = Executors.newCachedThreadPool();
public static void main(String[] args) throws Exception {
new ChatClient();
}
public ChatClient() {
try {
Socket socket = new Socket("192.168.1.120", PORT);
exec.execute(new Sender(socket));
System.out
.println("【" + socket.getInetAddress() + "】您好,欢迎来到阿飞聊天室!");
BufferedReader br = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
String msg;
while ((msg = br.readLine()) != null) {
System.out.println(msg);
}
} catch (Exception e) {
}
}
/**
* 客户端线程获取控制台输入消息
*/
static class Sender implements Runnable {
private Socket socket;
public Sender(Socket socket) {
this.socket = socket;
}
public void run() {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(
System.in));
PrintWriter pw = new PrintWriter(socket.getOutputStream(), true);
String msg;
while (true) {
msg = br.readLine();
pw.println(msg);
if (msg.trim().equals("bye")) {
pw.close();
br.close();
exec.shutdownNow();
break;
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
用java语言实行一个UDP聊天室 多客户 无图形用户界面
这是很久以前在网上找的,略作修改的一个小案例UDP聊天的,供你参考,改改里面的ip地址。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
public class UDPClient {
public static void main(String[] args) throws IOException {
new UDPClient().go();
}
private void go() {
ClientSendThread send = new ClientSendThread();
new Thread(send).start();
ClientRecvThread recv = new ClientRecvThread();
new Thread(recv).start();
}
class ClientSendThread implements Runnable {
@Override
public void run() {
try {
DatagramSocket ds = new DatagramSocket();
String str = "";
byte[] buf = null;
while (true) {
System.out.println("请输入");
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
str = br.readLine();
if ("bye".equals(str))
break;
buf = str.getBytes();
// System.out.println("-----buf.length-------" + buf.length);
DatagramPacket dp = new DatagramPacket(buf, buf.length,
new InetSocketAddress("127.0.0.1", 5678));
ds.send(dp);
buf = null;
}
ds.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
class ClientRecvThread implements Runnable {
@Override
public void run() {
byte[] buf = new byte[1024];
//接收端的端口需要指定,不然发送端不知道向哪个端口发送数据包
DatagramSocket ds;
try {
ds = new DatagramSocket(5679);
String message = "";
DatagramPacket dp = null;
while(true){
dp = new DatagramPacket(buf, buf.length);
ds.receive(dp);
message = new String(buf,0,dp.getLength());
System.out.println("接收到Server端信息为:"+message);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
public class UDPServer {
public static void main(String[] args) throws IOException {
new UDPServer().go();
}
private void go() {
//服务端启动2个线程,1个发送,1个接收
ServerSendThread send = new ServerSendThread();
new Thread(send).start();
ServerRecvThread recv = new ServerRecvThread();
new Thread(recv).start();
}
// 服务端发送线程
class ServerSendThread implements Runnable{
@Override
public void run() {
try {
DatagramSocket ds = new DatagramSocket();
String str = "";
byte[] buf = null;
while (true) {
System.out.println("请输入");
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
str = br.readLine();
if ("bye".equals(str))
break;
buf = str.getBytes();
DatagramPacket dp = new DatagramPacket(buf, buf.length,
new InetSocketAddress("192.163.20.61", 5679));
ds.send(dp);
buf = null;
}
ds.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
// 服务端接收线程
class ServerRecvThread implements Runnable{
@Override
public void run() {
byte[] buf = new byte[1024];
//接收端的端口需要指定,不然发送端不知道向哪个端口发送数据包
DatagramSocket ds;
try {
ds = new DatagramSocket(5678);
String message = "";
while(true){
DatagramPacket dp = new DatagramPacket(buf, buf.length);
ds.receive(dp);
message = new String(buf,0,dp.getLength());
System.out.println("接收到Client端的信息为:"+message);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
关于java聊天室实验报告和java聊天室实训报告的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-26,除非注明,否则均为
原创文章,转载请注明出处。