资源简介
java 网络聊天系统的设计与实现.系统可以采用任何一种流行的,Java支持的数据库,本系统采用了Microsoft公司的Access作为后台数据库。通过对现在流行的一些Icq的参考.
代码片段和文件信息
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
import javax.swing.*;
public class Client extends Jframe implements ActionListenerRunnable
{
public static int port=8888;
ServerSocket server;
Socket client;
BufferedReader cin;
PrintWriter cout;
private JLabel userlabel=new JLabel(“用户名“);;
private JLabel passwordlabel=new JLabel(“密码“);
private JTextField username=new JTextField(10);
private JPasswordField password=new JPasswordField(10);
private JButton loginButton=new JButton(“登录“);
private JButton exitButton=new JButton(“退出“);
private JPanel p1=new JPanel();
JButton messageButton=new JButton(“发送消息“);
JTextField clientMessage=new JTextField(““25);
JPanel p2=new JPanel();
JScrollPane messageScrollPane;
JTextArea message=new JTextArea();
Thread chart=null;
public Client()
{
super(“网络聊天客户端“);
p1.add(userlabel);
p1.add(username);
p1.add(passwordlabel);
p1.add(password);
p1.add(loginButton);
p1.add(exitButton);
loginButton.addActionListener(this);
exitButton.addActionListener(this);
this.getContentPane().add(p1“North“);
p2.add(clientMessage);
p2.add(messageButton);
messageButton.addActionListener(this);
messageScrollPane=new JScrollPane(messageJScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
this.getContentPane().add(p2“South“);
this.getContentPane().add(messageScrollPane“Center“);
this.setSize(500300);
this.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==loginButton)
{
String pword=new String(password.getPassword());
if(loginServer(username.getText()pword))
{
chart=new Thread(this);
chart.start();
}else{
JOptionPane.showMessageDialog(null“user name or password error!“);
}
}else if(e.getSource()==exitButton)
{
cout.println(“exit“);
chart=null;
}
if (e.getSource()==messageButton)
{
sendMessage(clientMessage.getText());
message.append(“发送:“+clientMessage.getText()+“\n“);
}
}
public boolean loginServer(String usernameString password)
{
try{
client=new Socket(“localhost“8888);
cin=new BufferedReader(new InputStreamReader(client.getInputStream()));
cout=new PrintWriter(client.getOutputStream()true);
cout.println(username);
cout.println(password);
String readLine=cin.readLine();
if(readLine.equals(“ok“))
{
message.append(“连接到服务器!\n“);
return true;
}
}catch(Exception e)
{
}
return false;
}
public void run()
{
String aline;
try{
while(chart!=null&&(aline=cin.readLine() )!=null)
{
if(aline.equals(“exit“)||aline.equals(“stop“))
{
message.append(“服务器已断开!重新登录!\n“);
break;
}else message.a
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 163840 2009-07-06 08:48 计063\chart.mdb
文件 4567 2009-08-30 09:41 计063\Client.class
文件 325621 2009-07-03 09:26 计063\client.jar
文件 3426 2009-07-03 08:10 计063\Client.java
文件 3150848 2009-10-27 19:52 计063\JAVA课程设计.doc
文件 20 2009-07-03 09:25 计063\manifest.mf
文件 20 2009-07-03 09:27 计063\manifest1.mf
文件 5508 2009-07-03 09:21 计063\Server.class
文件 650224 2009-07-03 09:27 计063\server.jar
文件 4758 2008-07-02 16:06 计063\Server.java
目录 0 2009-10-27 19:52 计063
----------- --------- ---------- ----- ----
4308832 11
评论
共有 条评论