java聊天系统总结报告_java聊天系统实训报告

41528d3028836879cd698677c3999917.gifjava聊天系统实训报告

郑州轻工业学院实 训 报 告实训名称: 即时聊天系统 姓 名: 王路超 院 (系): 软件学院 专业班级: java01 学 号: 621313530123 指导教师: 刘育熙 胡春辉 成 绩: 时间: 2014 年 06 月 3 日至 2014 年 06 月 20 日一、学生信息专业 软件技术 学号 621313530123 姓名 王路超 二、用户需求及约束条件完成一个即时聊天程序,使用服务器、客户端(C/S)架构,实现多人之间和个体对个体的聊天。服务器端使用线程非阻塞方式。使用数据库保存用户信息,允许其注册修改。当用户不在线时,支持信息留言三、实训目的:1、理解 C/S 模式的软件系统结构,掌握网络编程的基本概念;2、了解 Java 的多线程机制,掌握 Java 多线程技术的应用;3、熟练掌握基于 TCP 协议的 Socket 编程;4、熟练掌握基于 UDP 协议的 Socket 编程;5、了解 Socket 编程的协议约定以及信息交互方法;四、实训要求:使用 JBuilder 提供的组件及网络包,开发一个实用的 C/S 模式聊天室系统。 (1 ) 功能要求要求该系统由客户端及服务器端两部分组成。(2 ) 系统界面要求:要求系统具有友好的用户界面,界面简洁、操作方便;本程序客户端主要完成了:1. 客户端发送信息可以广播客户。2. 广播客户,则将信息转发到所有客户端。服务器主要完成了:客户-服务器之间信息的交互。例如 hello 发送信息到服务器,服务器将信息转发到所有与之连接的客户(hello、boy) ,通过这种形式,就可以实现客户之间的信息广播。 本程序可以实现发送信息广播,只要进入客户端都可以看到消息,本程序采用了流的概念,java 多线程,Socket 应用程序中用到的代码如下启动端口如下:package 聊天系统;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.DataStream;import java.io.DataOutputStream;import java.io.IOException;import .Socket;import java.util.logging.Level;import java.util.logging.Logger;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.JTextField;public class 聊天系统 extends JFrame implements ActionListener, Runnable{ private JFrame app;private JPanel a1,a2,a3,a4,a5;private JLabel 输入昵称;private JTextField l1, l2;private JTextArea textArea;private JButton b1,b2,b3;protected Socket socket;protected Thread thread;protected DataStream in;protected DataOutputStream out;protected String nickname;public 聊天系统(){app=new JFrame(““);app.setSize(400,300);app.setLocation(500,500);app.setLayout(new BorderLayout());app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);a1=new JPanel();a1.setBackground(Color.yellow);a2=new JPanel();a2=new JPanel();a4=new JPanel();a4.setBackground(Color.red); a5=new JPanel();输入昵称=new JLabel(“输入昵称“);l1=new JTextField(12);b1=new JButton(“确定“);a1.add(输入昵称);a1.add(l1);a1.add(b1);textArea=new JTextArea();textArea.setLineWrap(true);textArea.setWrapStyleWord(true);textArea.setFont(new Font(“幼圆“,Font.PLAIN,16));l2=new JTextField(20);a4.add(l2);b2=new JButton(“发送“);b2.setEnabled(false);a4.add(b2);b3=new JButton(“离线“);b3.setEnabled(false);a4.add(b3);app.add(a1,BorderLayout.NORTH);app.add(new JScrollPane(textArea),BorderLayout.CENTER);app.add(a4,BorderLayout.SOUTH);app.setVisible(true);}public static void main(String[] args) {new 聊天系统();}@Overridepublic void actionPered(ActionEvent e) {if(e.getSource()==b1){b1Button();}if(e.getSource()==b2){b2Button();}if(e.getSource()==b3){b3Button();}}private void b1Button()//确定{}private void b2Button()//发送{try{out.writeUTF(nickname+“说:“+l2.getText());textArea.append(nickname+“说:“+l2.getText()+“\n

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值