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

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

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

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

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、付费专栏及课程。

余额充值