資源簡介
默認使用DES加密聊天信息的SocketChat(內含DES與RSA加密工具)
使用的是GBK編碼!!!

代碼片段和文件信息
import?java.awt.Dimension;
import?java.awt.EventQueue;
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.OutputStreamWriter;
import?java.io.PrintWriter;
import?java.net.Socket;
import?javax.swing.JButton;
import?javax.swing.Jframe;
import?javax.swing.JLabel;
import?javax.swing.JPanel;
import?javax.swing.JScrollBar;
import?javax.swing.JScrollPane;
import?javax.swing.JTextField;
import?javax.swing.SwingConstants;
/**
?*?@author?CSDN_LQR
?*?@工程?DecryptSocketChat
?*?@包名
?*?@TODO?聊天客戶端
?*/
public?class?ClientSwing?implements?ActionListener?{
private?Jframe?mframe;
private?static?JScrollPane?mScrollPane;
private?JTextField?mtextField;
private?JButton?mBtnNewButton;
private?static?JPanel?mJPanel;
private?static?JScrollBar?mScrollBar;
private?static?Socket?socket;
private?static?BufferedReader?mInput;
private?static?PrintWriter?mOutput;
/**
?*?Launch?the?application.
?*/
public?static?void?main(String[]?args)?{
DESDecryptUtils.generateKeyToFile();
EventQueue.invokeLater(new?Runnable()?{
public?void?run()?{
try?{
ClientSwing?window?=?new?ClientSwing();
window.mframe.setVisible(true);
}?catch?(Exception?e)?{
e.printStackTrace();
}
}
});
try?{
socket?=?new?Socket(“127.0.0.1“?9999);
}?catch?(Exception?e1)?{
}
//?接收消息
new?Thread(new?Runnable()?{
public?void?run()?{
while?(true)?{
try?{
//?得到socket輸入流
mInput?=?new?BufferedReader(new?InputStreamReader(
socket.getInputStream()));
String?content?=?mInput.readLine();
//?解密信息
content?=?DESDecryptUtils.getDeencryMessage(content);
//?判斷是否要結束聊天
System.out.println(“客戶端得到信息:“?+?content);
/*?==========?把收到的信息顯示到滾動面板中?===========?*/
//?創建一個label
JLabel?label?=?new?JLabel(content);
//?label.setHorizontalAlignment(SwingConstants.RIGHT);
//?設置初始大小
label.setPreferredSize(new?Dimension(150?20));
//?把lable添加到jpanel中
mJPanel.add(label);
//?重繪jpanel和jScrollPane
mJPanel.repaint();
mScrollPane.repaint();
mScrollPane.revalidate();
mScrollPane.updateUI();
//?把滾動條滾到底部
mScrollBar.setValue(10000);
}?catch?(IOException?e)?{
//?e.printStackTrace();
}?catch?(Exception?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}
}
}
}).start();
}
//?按鈕監聽
public?void?actionPerformed(ActionEvent?e)?{
//?發送按鈕
if?(e.getSource().equals(mBtnNewButton))?{
String?content?=?mtextField.getText().trim();
//?內容不為空
if?(!content.equals(““))?{
try?{
//?得到socket輸出流
mOutput?=?new?PrintWriter(new?OutputStreamWriter(
socket.getOutputStream())?true);
//?創建一個label
JLabel?label?=?new?JLabel(c
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-05-17?09:35??DecryptSocketChat\
?????文件?????????301??2016-05-17?09:09??DecryptSocketChat\.classpath
?????文件?????????393??2016-05-17?09:08??DecryptSocketChat\.project
?????目錄???????????0??2016-05-17?09:09??DecryptSocketChat\.settings\
?????文件??????????55??2016-05-17?09:09??DecryptSocketChat\.settings\org.eclipse.core.resources.prefs
?????文件?????????598??2016-05-17?09:09??DecryptSocketChat\.settings\org.eclipse.jdt.core.prefs
?????目錄???????????0??2016-05-19?21:15??DecryptSocketChat\bin\
?????文件?????????789??2016-05-19?21:15??DecryptSocketChat\bin\ClientSwing$1.class
?????文件????????2204??2016-05-19?21:15??DecryptSocketChat\bin\ClientSwing$2.class
?????文件?????????618??2016-05-19?21:15??DecryptSocketChat\bin\ClientSwing$3.class
?????文件????????4596??2016-05-19?21:15??DecryptSocketChat\bin\ClientSwing.class
?????文件????????6364??2016-05-19?21:05??DecryptSocketChat\bin\Conversion.class
?????文件????????3421??2016-05-19?21:15??DecryptSocketChat\bin\DESDecryptUtils.class
?????文件????????2939??2016-05-19?21:15??DecryptSocketChat\bin\RSADecryptUtils.class
?????文件?????????789??2016-05-19?21:15??DecryptSocketChat\bin\ServerSwing$1.class
?????文件????????2344??2016-05-19?21:15??DecryptSocketChat\bin\ServerSwing$2.class
?????文件?????????618??2016-05-19?21:15??DecryptSocketChat\bin\ServerSwing$3.class
?????文件????????4624??2016-05-19?21:15??DecryptSocketChat\bin\ServerSwing.class
?????文件????????4148??2016-05-19?21:13??DecryptSocketChat\bin\VerticalFlowLayout.class
?????文件?????????263??2016-05-17?09:35??DecryptSocketChat\key.key
?????目錄???????????0??2016-05-19?21:15??DecryptSocketChat\src\
?????文件????????4978??2016-05-19?21:15??DecryptSocketChat\src\ClientSwing.java
?????文件???????11243??2016-05-19?21:05??DecryptSocketChat\src\Conversion.java
?????文件????????2949??2016-05-19?21:15??DecryptSocketChat\src\DESDecryptUtils.java
?????文件????????2929??2016-05-19?21:15??DecryptSocketChat\src\RSADecryptUtils.java
?????文件????????5196??2016-05-19?21:15??DecryptSocketChat\src\ServerSwing.java
?????文件????????7049??2016-05-19?21:13??DecryptSocketChat\src\VerticalFlowLayout.java
- 上一篇:火狐安裝未通過驗證的擴展
- 下一篇:計算機畢業實習報告第三篇
評論
共有 條評論