资源简介
用到了多线程的知识,首先输入一个端口号开启服务器,然后开启客户端,服务器端产生一对密钥,服务器公钥加密,客户端私钥解密。
接收消息有qq头像闪动效果。

代码片段和文件信息
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.Socket;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.Date;
import java.util.Enumeration;
import com.rsa.RSACoder;
public class Client implements Runnable {
String ip;
int port;
DataOutputStream dos;
Socket client;
public Client(String ip int port) {
super();
this.ip = ip;
this.port = port;
}
public void init() {
try {
client = new Socket(ip port);
// pw=new PrintWriter(client.getOutputStream());
dos = new DataOutputStream(client.getOutputStream());
sayHello(“ALL“);
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
new Thread(new Recieve_Runnable(client)).start();
}
// 发送上线请求 格式(目标地址:本机地址:消息类型:消息内容)
public void sayHello(String target) {
sendMessage(target MsgType.JOIN ““new Date().toLocaleString());
}
// 发送离线请求
public void sayBay(String target) {
sendMessage(target MsgType.LEFT ““new Date().toLocaleString());
}
// 向服务器发送消息 返回拼接好的字符串(加密前的明文)
public String sendMessage(String target String type String msgString date) {
System.out.println(“client:加密前:“ + msg);
String unencodeStr = target +MsgType.SPLIT+ ClientStart.nick_text.getText().toString() + MsgType.SPLIT + type + MsgType.SPLIT
+ msg+MsgType.SPLIT+date;
//加密msg类型的消息
if(MsgType.MSG.equals(type)){
//用公钥加密
;
try {
byte[] data = msg.getBytes();
byte[] encodedData = RSACoder.encryptByPublicKey(data ClientStart.publicKey);
// System.out.println(“encodedData:“+encodedData);
msg=Util.bytesToString(encodedData);
System.out.println(“client加密后:“+msg);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
String str = target +MsgType.SPLIT+ ClientStart.nick_text.getText().toString() + MsgType.SPLIT + type + MsgType.SPLIT
+ msg+MsgType.SPLIT+date;
new Thread(new Send_Runnable(client str)).start();
return unencodeStr;
}
@Override
public void run() {
// TODO Auto-generated method stub
init();
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2014-06-19 14:01 Client\
文件 232 2014-06-19 10:15 Client\.classpath
文件 382 2014-06-17 09:39 Client\.project
目录 0 2014-06-19 14:01 Client\.settings\
文件 598 2014-06-18 09:26 Client\.settings\org.eclipse.jdt.core.prefs
目录 0 2014-06-19 14:55 Client\bin\
文件 3156 2014-06-19 15:02 Client\bin\Client.class
文件 2107 2014-06-19 14:01 Client\bin\ClientStart$1.class
文件 1714 2014-06-19 14:01 Client\bin\ClientStart$2.class
文件 1655 2014-06-19 14:01 Client\bin\ClientStart$3.class
文件 1607 2014-06-19 14:01 Client\bin\ClientStart$4.class
文件 793 2014-06-19 14:01 Client\bin\ClientStart$5.class
文件 4237 2014-06-19 14:01 Client\bin\ClientStart.class
文件 793 2014-06-19 14:01 Client\bin\MainWindow$1.class
文件 1260 2014-06-19 14:01 Client\bin\MainWindow$2.class
文件 784 2014-06-19 14:01 Client\bin\MainWindow$3.class
文件 2550 2014-06-19 14:01 Client\bin\MainWindow.class
文件 342 2014-06-19 14:01 Client\bin\Msgob
文件 986 2014-06-19 14:01 Client\bin\MsgType.class
文件 3574 2014-06-19 15:05 Client\bin\Recieve_Runnable.class
文件 963 2014-06-19 14:01 Client\bin\Send_Runnable.class
文件 1084 2014-06-19 14:01 Client\bin\Shake_Message_Runnable.class
文件 1220 2014-06-19 15:01 Client\bin\Util.class
目录 0 2014-06-19 14:01 Client\bin\com\
目录 0 2014-06-19 14:01 Client\bin\com\rsa\
文件 2137 2014-06-19 14:01 Client\bin\com\rsa\Coder.class
文件 4973 2014-06-19 14:01 Client\bin\com\rsa\RSACoder.class
目录 0 2014-06-19 14:01 Client\images\
文件 667 2014-06-18 10:43 Client\images\blank.jpg
文件 982 2014-06-18 10:43 Client\images\message.jpg
目录 0 2014-06-19 14:55 Client\src\
............此处省略44个文件信息
- 上一篇:Android放大镜实现
- 下一篇:EAN-13条形码java程序
相关资源
- java图片浏览器跨平台运行程序与源码
- 基于java的在线考试系统-毕业设计
- 微博系统(Java源码,servlet+jsp),适
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- pc与android通过usb socket实现手机通信
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
评论
共有 条评论