Java聊天系统实训报告

一、实训目的:

1、理解C/S模式的软件系统结构,掌握网络编程的基本概念;2、了解Java 的多线程机制,掌握Java多线程技术的应用;3、熟练掌握基于TCP协议的Socket编程;4、熟练掌握基于UDP协议的Socket编程;5、了解Socket编程的协议约定以及信息交互方法;

二、实训要求:

使用JBuilder提供的组件及网络包,开发一个实用的C/S模式聊天室系统。

功能要求要求该系统由客户端及服务器端两部分组成。

系统界面要求:

要求系统具有友好的用户界面,界面简洁、操作方便;

本程序客户端主要完成了:1. 客户端发送信息可以广播客户。2. 广播客户,则将信息转发到所有客户端。服务器主要完成了:

客户-服务器之间信息的交互。例如hello发送信息到服务器,服务器将信息转发到所有与之连接的客户(hello、boy),通过这种形式,就可以实现客户之间的信息广播。

本程序可以实现发送信息广播,只要进入客户端都可以看到消息,本程序采用了流的概念,java多线程,Socket应用

程序中用到的代码如下

客户端代码:

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
public class Login implements ActionListener{
private static final ActionListener WindowAdapter = null;
private Frame f;
private TextField tf;
private Label l;
private String tfContent="";
public Login()
{
f = new Frame("欢迎登陆本程序...按enter键直接登录");
l = new Label("请输入你的名字");
tf = new TextField(20);
f.setLayout(new FlowLayout());
f.add(l);
f.add(tf);
f.pack();
f.show();
tf.addActionListener(this);
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
);
}
public void actionPerformed(ActionEvent e){
System.out.println ("ft clicked");
tfContent = tf.getText();
ClientFrame cf = new ClientFrame(tfContent);
f.dispose();
}
public static void main(String[] args){
new Login();
}
}
class ClientFrame extends Thread implements ActionListener{
private Frame f;
private TextField tf;
private Button btn;
TextArea ta;
private Panel pup;
String data;