j2me客户端代码如下 :
String url = "ssl://192.168.0.229:9512";
SecureConnection sc = null;
InputStream is = null;
OutputStream os = null;
DataInputStream dis = null;
DataOutputStream dos = null;
try {
sc = (SecureConnection) Connector.open(url);
sc.setSocketOption(SocketConnection.LINGER, 10);
os = sc.openOutputStream();
dos = new DataOutputStream(os);
dos.writeUTF(name);
dos.flush();
服务器端使用的是apache的mina框架来处理sslsocket的 (同事开发的,里面是没有进行证书验证的,android iphone这些客户端都没有提示与证书相关的错误信息) 我用j2me的模拟器测试时也可以与服务器端正常通信 ,但是把程序安装到真机上之后,进行连接时服务器端会报错 ,错误信息如下:
2011-10-11 17:47:00,109 INFO [org.apache.mina.filter.logging.LoggingFilter.log(LoggingFilter.java:159)] -
2011-10-11 17:47:00,109 INFO [org.apache.mina.filter.logging.LoggingFilter.log(LoggingFilter.java:159)] -
2011-10-11 17:47:00,703 INFO [org.apache.mina.filter.logging.LoggingFilter.log(LoggingFilter.java:141)] -
2011-10-11 17:47:00,703 INFO [org.apache.mina.filter.logging.LoggingFilter.log(LoggingFilter.java:141)] -
2011-10-11 17:47:00,953 INFO [org.apache.mina.filter.logging.LoggingFilter.log(LoggingFilter.java:141)] -
2011-10-11 17:47:00,953 WARN [org.apache.mina.filter.logging.LoggingFilter.log(LoggingFilter.java:123)] -
javax.net.ssl.SSLHandshakeException: SSL handshake failed.
at org.apache.mina.filter.ssl.SslFilter.messageReceived(SslFilter.java:495)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:46)
at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:796)
at org.apache.mina.filter.logging.LoggingFilter.messageReceived(LoggingFilter.java:177)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:46)
at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:796)
at org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:119)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.fireMessageReceived(DefaultIoFilterChain.java:426)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:693)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:646)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:635)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$400(AbstractPollingIoProcessor.java:67)
at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1079)
at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: javax.net.ssl.SSLException: Received fatal alert: bad_certificate
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLEngineImpl.fatal(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLEngineImpl.fatal(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLEngineImpl.recvAlert(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLEngineImpl.readRecord(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLEngineImpl.readNetRecord(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLEngineImpl.unwrap(Unknown Source)
at javax.net.ssl.SSLEngine.unwrap(Unknown Source)
at org.apache.mina.filter.ssl.SslHandler.unwrap(SslHandler.java:725)
at org.apache.mina.filter.ssl.SslHandler.unwrapHandshake(SslHandler.java:663)
at org.apache.mina.filter.ssl.SslHandler.handshake(SslHandler.java:549)
at org.apache.mina.filter.ssl.SslHandler.messageReceived(SslHandler.java:349)
at org.apache.mina.filter.ssl.SslFilter.messageReceived(SslFilter.java:476)
... 19 more
大家帮忙看看是什么原因,其他的客户端都没提示与证书相关的信息
问题补充:高级java工程师 写道
首先检查是否连接服务器,然后从新编译代码!!!!!!!!
什么意思?
相关推荐
程序采用sslsocket联网技术实现,采用自己创建的数字证书,导入wtk中实现联网安全信息传输。 共同探讨:jack_sj@139.com
J2ME中使用Socket开发联网程序,源代码形式。
Java移动通信程序设计-J2ME,一个很好的用来学习手机通信的例子,有网页源码和程序源码
J2ME 的socket通信源码,经过本人的整理能真正运行的源码
使用Socket的一个好处是可以避免为每个网络请求建立单独的Connection。并且因为socket的inputStream, outputStream是双工的方式工作,所以可以连续的发送网络请求而不必等待网络回应。 原文发布在:...
基于J2ME的Socket网络通信加密技术研究,张宇敏,杨杰,随着3G技术的高速发展,手机上网已经成为一种时尚,使用手机上网的人逐渐增多,而手机网络安全问题也随之而来,自然手机通信的安�
J2ME_移动通信介绍J2ME_移动通信介绍J2ME_移动通信介绍J2ME_移动通信介绍J2ME_移动通信介绍J2ME_移动通信介绍
J2ME API J2ME API J2ME API J2ME API J2ME API
基于j2me平台的掌上网络商店服务器端的开发.doc
j2me socket 图片上传j2me socket 图片上传j2me socket 图片上传j2me socket 图片上传
简单实通信功能,但是真机很少支持,希望和大家多多交流
基于手机的通信录、文件、图片读写开发,j2me开发架构
j2me混淆器安装与使用方法 j2me混淆器安装与使用方法
基于J2ME开发的聊天程序,使用socket,可与J2SE的程序连接,本人毕业设计的一部分,给做毕设的同学借鉴借鉴
j2me获取真机屏幕宽度 高度的小程序 源码
j2me 实现了对gps的定位并把数据传给相应的jsp,然后又jsp执行对数据库的写操作
这是个人家的代码,我j2me懂得不多,我看他代码里面从来没有出现 单词库文件的名字"dict",是不是因为这个报错?还是j2me是可以不用文件名就可以调用那个dict文件的?(我只知道vb是肯定不行的) 多谢!
J2ME的SOCKET编程技术学习的代码
j2me使用udp的简单连接源码 server与Client的连接