没有合适的资源?快使用搜索试试~ 我知道了~
首页Socket通信Des加密笔记
资源详情
资源评论
资源推荐
raw.doc
Socket 通信及 Des 之 CBC 加密解密
Socket 通信及 Des 之 CBC 加密解密 商业机密 第 1 页,共 42 页
raw.doc
目录
1.1 Socket 通信:...................................................................................................................... 2
1.1.1 socket 基本概念........................................................................................................ 2
1.1.2 建立 socket 连接步骤................................................................................................. 2
1.1.3 通信实例................................................................................................................... 3
1.1.4 使用 Socket 应注意问题:.......................................................................................12
1.2 Des 之 CBC 加密解密........................................................................................................ 13
1.2.1 DES 简单介绍......................................................................................................... 13
1.2.2 CBC 加密实现的机理............................................................................................... 13
1.2.3 使用 CBC 和 Base64 加密解密 关键代码 :............................................................14
1.2.4 使用 DSE 加密解密注意问题:................................................................................24
1.3 Socket 通信及 Des 之 CBC 加密解密完整源码:...............................................................24
1.3.1 Java 服务代码:...................................................................................................... 24
1.3.2 Android 客户端代码:.............................................................................................31
1.1 Socket
通信:
1.1.1 socket 基本概念
套接字(socket)是通信的基石,是支持 TCP/IP 协议的网络通信的基本操作单元。它是网络通信
过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的 IP 地址,
本地进程的协议端口,远地主机的 IP 地址,远地进程的协议端口
1.1.2 建立 socket 连接步骤
I. 简单介绍:
建立 Socket 连接至少需要一对套接字,其中一个运行于客户端,称为 ClientSocket ,另
一个运行于服务器端,称为 ServerSocket 。
套接字之间的连接过程分为三个步骤:服务器监听,客户端请求,连接确认。
II. 服务器监听
服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网
络状态,等待客户端的连接请求。
Socket 通信及 Des 之 CBC 加密解密 商业机密 第 2 页,共 42 页
raw.doc
III. 客户端请求
指客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的
套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号 ,
然后就向服务器端套接字提出连接请求。
IV. 连接确认
当服务器端套接字监听到或者说接收到客户端套接字的连接请求时,就响应客户端套接
字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认
了此描述,双方就正式建立连接。而服务器端套接字继续处于监听状态,继续接收其他
客户端套接字的连接请求。
1.1.3 通信实例
I. Java 服务端代码 :
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.UnknownHostException;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
import java.nio.channels.ServerSocketChannel;
import java.nio.channels.SocketChannel;
import java.nio.charset.Charset;
import java.nio.charset.CharsetDecoder;
import java.util.Collection;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Set;
public class MsgServer {
public Selector sel = null;
public ServerSocketChannel server = null;
public SocketChannel socket = null;
public int thisport = 4900;
private String result = null;
private Hashtable<String, SocketChannel> userlists;
private SocketChannel readingsocket = null;
Socket 通信及 Des 之 CBC 加密解密 商业机密 第 3 页,共 42 页
raw.doc
public MsgServer() {
System.out.println("Inside startserver ");
}
public MsgServer(int port) {
System.out.println("Inside startserver ");
thisport = port;
}
public void init() throws IOException, UnknownHostException {
System.out.println("Inside initialization ");
sel = Selector.open();
server = ServerSocketChannel.open();
server.configureBlocking(false);
InetSocketAddress isa = new
InetSocketAddress("192.85.1.235",
thisport);
server.socket().bind(isa);
userlists = new Hashtable<String, SocketChannel>();
}
public void startServer() throws IOException
{
init();
server.register(sel, SelectionKey.OP_ACCEPT);
while (sel.select() > 0 )
{
Set<?> readyKeys=sel.selectedKeys();
Iterator<?> it=readyKeys.iterator();
while(it.hasNext())
{
SelectionKey sk=(SelectionKey)it.next();
it.remove();
if (sk.isAcceptable())
{
ServerSocketChannel ssc =
(ServerSocketChannel)sk.channel();
socket = (SocketChannel) ssc.accept();
System.out.println(socket.toString());
/*设置为非阻塞模式*/
socket.configureBlocking(false);
Socket 通信及 Des 之 CBC 加密解密 商业机密 第 4 页,共 42 页
raw.doc
String socketname =
socket.socket().getRemoteSocketAddress().toString();
socket.register(sel, SelectionKey.OP_READ);
sk.interestOps(SelectionKey.OP_ACCEPT);
userlists.put(socketname,socket);
System.out.println(socketname +" 已经连接
了!!");
}
if (sk.isReadable())
{
System.out.println("start write...");
readingsocket =(SocketChannel)sk.channel();
String ret=readMessage(readingsocket);
if (ret.equalsIgnoreCase("@@@@@ has left!"))
{
sk.cancel();
readingsocket.close();
userlists.remove(readingsocket.socket().getRemoteSocketAddress()
.toString());
System.out.println("left
message:"+ret.replace("@@@@@",
readingsocket.socket().getRemoteSocketAddress().toString()));
sendMessage(ret.replace("@@@@@",
readingsocket.socket().getRemoteSocketAddress().toString()));
}
else if (ret.length() > 0 )
{
//sk.cancel();
System.out.println("send server
msg:"+ret);
//传回信息
sendMessage(ret);
}
}
}
}
}
public void sendMessage(String msg) throws IOException {
ByteBuffer buffer = ByteBuffer.allocate(1024);
buffer = ByteBuffer.wrap(msg.getBytes());
Socket 通信及 Des 之 CBC 加密解密 商业机密 第 5 页,共 42 页
剩余41页未读,继续阅读
知道就是你
- 粉丝: 69
- 资源: 23
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- ExcelVBA中的Range和Cells用法说明.pdf
- 基于单片机的电梯控制模型设计.doc
- 主成分分析和因子分析.pptx
- 共享笔记服务系统论文.doc
- 基于数据治理体系的数据中台实践分享.pptx
- 变压器的铭牌和额定值.pptx
- 计算机网络课程设计报告--用winsock设计Ping应用程序.doc
- 高电压技术课件:第03章 液体和固体介质的电气特性.pdf
- Oracle商务智能精华介绍.pptx
- 基于单片机的输液滴速控制系统设计文档.doc
- dw考试题 5套.pdf
- 学生档案管理系统详细设计说明书.doc
- 操作系统PPT课件.pptx
- 智慧路边停车管理系统方案.pptx
- 【企业内控系列】企业内部控制之人力资源管理控制(17页).doc
- 温度传感器分类与特点.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论4