資源簡介
一個用java實現的簡單的聊天程序,聊天發送的內容是用RSA加密算法進行了加密

代碼片段和文件信息
package?com.banko.rsachat;
import?java.awt.BorderLayout;
import?java.awt.FlowLayout;
import?java.awt.event.ActionEvent;
import?java.awt.event.ActionListener;
import?java.io.BufferedReader;
import?java.io.IOException;
import?java.io.InputStreamReader;
import?java.io.PrintWriter;
import?java.net.Socket;
import?java.net.UnknownHostException;
import?java.util.Random;
import?javax.swing.JButton;
import?javax.swing.Jframe;
import?javax.swing.JLabel;
import?javax.swing.JPanel;
import?javax.swing.JTextArea;
import?javax.swing.JTextField;
public?class?ChatClient?extends?Jframe{
private?JTextArea?jta;
private?JTextField?jtf;
private?JButton?jb;
private?JLabel?name;
private?Socket?s;
private?PrintWriter?pw;
private?BufferedReader?br;
public?ChatClient()?{
this.setSize(300?350);
this.settitle(“聊天室“);
this.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
jta?=?new?JTextArea(15?20);
jtf?=?new?JTextField(15);
jb?=?new?JButton(“發送“);
name?=?new?JLabel(String.valueOf(new?Random().nextInt(100)));
JPanel?jp?=?new?JPanel();
jp.setLayout(new?FlowLayout());
jp.add(name);
jp.add(jtf);
jp.add(jb);
jb.addActionListener(new?ActionListener()?{
@Override
public?void?actionPerformed(ActionEvent?e)?{
// String?message?=?jtf.getText();
// message?=?jtf.getText();
String?message?=?name.getText()?+?“說:?“?+?jtf.getText();
message?=?RSAChinese.encrypt(message?RSAChinese.key[0]?RSAChinese.key[1]);
pw.println(message);
pw.flush();
jtf.setText(““);
}
});
this.setLayout(new?BorderLayout());
this.add(jta?BorderLayout.CENTER);
this.add(jp?BorderLayout.SOUTH);
getMessage();
this.setVisible(true);
}
private?void?getMessage()?{
try?{
s?=?new?Socket(“127.0.0.1“?8888);
pw?=?new?PrintWriter(s.getOutputStream());
new?ClientThread().start();
}?catch?(UnknownHostException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}?catch?(IOException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}
}
class?ClientThread?extends?Thread{
public?void?run()?{
while(true)?{
try?{
br?=?new?BufferedReader(new?InputStreamReader(s.getInputStream()));
String?message?=?br.readLine();
message?=?RSAChinese.decrypt(message?RSAChinese.key[2]?RSAChinese.key[1]);
jta.append(message?+?“\n“);
}?catch?(IOException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}
}
}
}
public?static?void?main(String[]?args)?{
new?ChatClient();
}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????301??2012-06-12?19:01??rsa_chat\.classpath
?????文件????????384??2012-06-12?19:01??rsa_chat\.project
?????文件????????629??2012-06-12?19:01??rsa_chat\.settings\org.eclipse.jdt.core.prefs
?????文件???????1671??2012-06-21?19:22??rsa_chat\bin\com\banko\rsachat\ChatClient$1.class
?????文件???????1859??2012-06-21?19:22??rsa_chat\bin\com\banko\rsachat\ChatClient$ClientThread.class
?????文件???????3469??2012-06-21?19:22??rsa_chat\bin\com\banko\rsachat\ChatClient.class
?????文件???????2181??2012-06-13?12:08??rsa_chat\bin\com\banko\rsachat\ChatServer$ServerThread.class
?????文件???????1368??2012-06-13?12:08??rsa_chat\bin\com\banko\rsachat\ChatServer.class
?????文件???????5215??2012-06-13?11:58??rsa_chat\bin\com\banko\rsachat\RSAChinese.class
?????文件???????2649??2012-06-21?19:22??rsa_chat\src\com\banko\rsachat\ChatClient.java
?????文件???????1764??2012-06-13?12:08??rsa_chat\src\com\banko\rsachat\ChatServer.java
?????文件???????4651??2012-06-13?11:58??rsa_chat\src\com\banko\rsachat\RSAChinese.java
?????目錄??????????0??2012-06-13?12:20??rsa_chat\bin\com\banko\rsachat
?????目錄??????????0??2012-06-12?19:23??rsa_chat\src\com\banko\rsachat
?????目錄??????????0??2012-06-12?19:01??rsa_chat\bin\com\banko
?????目錄??????????0??2012-06-12?19:01??rsa_chat\src\com\banko
?????目錄??????????0??2012-06-12?19:01??rsa_chat\bin\com
?????目錄??????????0??2012-06-12?19:01??rsa_chat\src\com
?????目錄??????????0??2012-06-12?19:01??rsa_chat\.settings
?????目錄??????????0??2012-06-12?19:01??rsa_chat\bin
?????目錄??????????0??2012-06-12?19:01??rsa_chat\src
?????目錄??????????0??2012-06-12?19:01??rsa_chat
-----------?---------??----------?-----??----
????????????????26141????????????????????22
評論
共有 條評論