java语言搭建SSL的Socket并发送字符串消息(最简单应用实例/常见异常及解决)

本文通过一个简单的Java SSL Socket实例,介绍如何建立连接并发送字符串消息。讨论了SSL通信的基础知识,包括SSL类的关系和通信过程。在实践中,遇到如`Cannot recover key`、`certificate_unknown`等常见异常,文章提供了详细的解决方法。同时,详细阐述了秘钥库的创建、SSL环境搭建以及客户端和服务器的配置。最后,给出了完整的客户端和服务器端代码示例。
摘要由CSDN通过智能技术生成

我看了几篇微博,有的非常详实,作为深入学习资料非常好。

但是有的说是实例吧...无关测试代码太多,感觉就是画蛇添足。各种秘钥库管理感觉都是非必要的。

索性自己写一个。顺便记录一些常见的异常,如:

Cannot recover key
certificate_unknown
signature check failed
java.net.SocketException: Connection reset
Received fatal alert: handshake_failure

 

---------------------

>基础知识(有兴趣深入了解机制可见此)

简单看一下有关SSL的类的关系:

 

通信过程、加密原理和深入学习看此:

http://kb.cnblogs.com/page/162080/

 

---------------------

>开始实例

首先,你要知道普通的Socket是怎么建立的,如果你不了解这一项,见此:

http://blog.csdn.net/shenpibaipao/article/details/70176038

 

1.客户端的搭建

与常见的Socket搭建没有什么差别,唯一不同的是——sslsocket是从工厂类中获取的,如下:

 

//1.获取SSLSocketFactory对象
SocketFactory factory = SSLSocketFactory.getDefault();
//2.从工厂类中获取sslsocket并提供服务器ip和端口参数
Socket sslsocket = factory.createSocket("127.0.0.1", 9100);
//3.获取输出流,并包装成UTF-8编码的缓存字节流(注意包装成UTF8,否则会中文乱码)
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(sslsocket.getOutputStream(),"UTF-8")); 
//4.开始输出文字等
out.write("This is mes
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值