java课程设计--聊天软件(带源码)(可编辑修改word版)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5. 实验方法与步骤:
这个软件从0.1 到1.3 一共13 个版本。0.1 到0.4 版本为客户端界面设计,第0.5 到1.2 版本为服务器端设计以及客户端与服务器端通信连接的设计实现。1.3 版为完善之前版本的缺陷并添加登陆界面。
最终版本1.3 版中一共三个类(如图一所示)
源代码如下:
//客户端
import java.awt.*;
import java.awt.event.*;
import java.io.IOException;
import .*;
import java.io.*;
public class ChatClient extends Frame
{ Socket s = null;
DataOutputStream dos = null;
DataInputStream dis = null;
private boolean bConnected = false;
private static final long serialVersionUID = 1L;
TextField tfTxt = new TextField();
TextArea taContent = new TextArea();
public static void main(String[] args) {
// TODO Auto-generated method stub
new Login();
}
public void launchFrame()
{ setLocation(400, 300);
this.setSize(300, 300);
add(tfTxt, BorderLayout.SOUTH);
add(taContent, BorderLayout.NORTH);
pack();
this.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e)
{ disconnect();
System.exit(0);
}
});
tfTxt.addActionListener(new TFListener());
setVisible(true);
connect();
new Thread(new RecvThead()).start();
}
public void connect() {
try {
s = new Socket("127.0.0.1", 8888);
dos = new DataOutputStream(s.getOutputStream());
dis = new DataInputStream(s.getInputStream());
System.out.print("lian jie shang le ");
bConnected = true;
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void disconnect() {
try {
public void run() {
try {
while (bConnected)
{ String str;
str = dis.readUTF();
taContent.setText(taContent.getText()+str+'\n');
System.out.print(str);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
//服务器端
import java.io.DataInputStream;
import java.io.EOFException;
import java.io.IOException;
import java.io.*;
import .*;
import java.util.*;
public class ChatServer
{ boolean started =
false; ServerSocket ss =
null;
List
public static void main(String[] args) {
// Socket s=null;
// DataInputStream dis =null;
new ChatServer().start();
}