资源简介
用到了多线程的知识,首先输入一个端口号开启服务器,然后开启客户端,服务器端产生一对密钥,服务器公钥加密,客户端私钥解密。
接收消息有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程序
相关资源
- EAN-13条形码java程序
- Android、Java、Web三端通用的RSA和AES工具
- java的通讯录管理系统(适合初学者)
- 图片上传完整实现(jspjavajs表设计)
- java实现WebService显示天气预报
- Hilditch细化算法:java实现
- java二级选择题
- 数据库课程设计-学生学籍管理系统
- 微信小程序前端和java后端
- java文件p2p传输
- java写的最简单的lan聊天工具
- ATM_java课程设计
- Java实现B+Tree
- Skype4Java java语音聊天 语音即时通讯
- DTU 数据读取
- 飞鸽源码java版
- Java图书馆借书还书系统
- 基于客户端通信的DES加密的java实现
- Java写的西洋跳棋人机对战
- 基于SpringMVC的JAVA论坛(J2EE BBS 毕业设
- JAVA联机版飞机大战(毕业设计 黄跃然
- 公交查询系统源码(JAVA)
- Java程序框架--多线程异步处理多任务
- 购物网 java源码
- 2048java源码
- java实现MODBUS通讯
- java web实验报告
- 一个模拟windows时钟日历的程序纯Jav
- 人工智能 动物产生式系统 java
- TCP实现的文件上传功能java
评论
共有 条评论