0 0

j2me使用sslSocket与服务器端通信真机报错?5

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工程师 写道

首先检查是否连接服务器,然后从新编译代码!!!!!!!!

什么意思?
2011年10月11日 17:51

2个答案 按时间排序 按投票排序

0 0

5 小时前 ITeye管理员 发给 我 的消息 
标题: 您好 
   
 您好  ITeye管理员 5 小时前  
尊敬的用户, 

您好! 

有用户反映您在回答问题时的答案与用户AngelAndAngel的答案过于相近,为避免抄袭的嫌疑,以后请注意遵守大赛规则,如确有抄袭行为,将取消参赛资格。 


ITeye管理员 
 回复 转发 收藏 删除   
   
 Re: 您好  
高级java工程师





我无语了有人举报我超AngelAndAngel的,我真的很无语!!我不比赛了,如果有事你加我QQ503229799

2011年10月13日 20:58
0 0


首先检查是否连接服务器,然后从新编译代码!!!!!!!!

2011年10月12日 09:45

相关推荐

    j2me程序sslsocket联网编程(客户端,服务器),wtk导入数字证书

    在本文中,我们将深入探讨Java ME (J2ME) 平台上的SSLSocket联网编程,以及如何使用WTK(Java Wireless Toolkit)导入数字证书来确保客户端和服务器间的安全信息传输。J2ME是Java的一个子集,专为移动设备和嵌入式...

    j2me socket编程

    - 一旦有客户端连接,服务器端会创建一个新的 Socket 对象,用于与该客户端进行通信。 ### 6. 异常处理 Socket 编程中应始终处理可能的异常,如 `IOException`,确保程序在出现问题时能够优雅地处理错误。 ### 7. ...

    J2ME的Socket编程

    - J2ME 还支持安全 Socket,即 SSL (Secure Sockets Layer) 或 TLS (Transport Layer Security),提供加密通信,防止数据被窃听。 10. **优化技巧**: - 由于 J2ME 的资源限制,优化 Socket 编程至关重要。比如,...

    j2me 与jsp通信

    标题中的“j2me 与jsp通信”涉及的是在移动设备上使用Java 2 Micro Edition (J2ME)平台与服务器端的JavaServer Pages (JSP)进行数据交互的技术。J2ME通常用于开发功能手机和嵌入式系统的应用程序,而JSP则是Web开发...

    java-compcation.rar_J2ME 源码_j2me_手机移动通信_移动通信

    在这个例子中,"Java移动通信程序设计"可能包括使用J2ME的MIDP API来实现基本的通信功能,如发送和接收短信(SMS)、拨打电话、或者访问网络数据。可能还涵盖了如何使用J2ME的网络类,如`HttpConnection`和`...

    j2me socket 服务端与 客户端聊天

    4. **读取和发送消息**:与客户端类似,服务器端同样使用输入/输出流进行通信。`DataInputStream` 和 `DataOutputStream` 分别用于读取客户端消息和向客户端发送消息。 5. **关闭资源**:服务器端在完成与客户端的...

    J2ME 的socket通信源码

    J2ME 的socket通信源码,经过本人的整理能真正运行的源码

    j2me socket 图片上传

    综上所述,J2ME中的Socket图片上传涉及多个步骤,包括Socket连接的建立、图片数据的读取与编码、数据的发送与接收,以及服务器端的处理。在实际应用中,还要考虑性能优化、错误处理和用户体验等方面。通过熟练掌握...

    j2me_https.rar_ j2me-https_j2me_j2me htt_j2me htt_j2me https

    开发者需要配置SSLContext,然后创建SSLSocket,用以建立与服务器的加密连接。 3. **网络接入点设置**:在某些移动网络中,如GPRS或CMWAP,可能需要特定的网络配置才能进行HTTPS连接。开发者可能需要处理数据流的...

    j2me socket 框架连接的例子

    使用Socket的一个好处是可以避免为每个网络请求建立单独的Connection。并且因为socket的inputStream, outputStream是双工的方式工作,所以可以连续的发送网络请求而不必等待网络回应。 原文发布在:...

    论文研究-基于J2ME的Socket网络通信加密技术研究 .pdf

    基于J2ME的Socket网络通信加密技术研究,张宇敏,杨杰,随着3G技术的高速发展,手机上网已经成为一种时尚,使用手机上网的人逐渐增多,而手机网络安全问题也随之而来,自然手机通信的安�

    j2me客户服务 基于socket + mysql驱动

    在J2ME中,`java.net.Socket` 和 `java.net.ServerSocket` 类用于实现客户端和服务器端的通信。服务器端通过创建`ServerSocket`监听特定端口,等待客户端的连接请求。一旦客户端(如ChatClient)通过`Socket`连接到...

    PDA.rar_PDA_j2me_j2me 图片_j2me 文件_j2me 通信

    在移动设备领域,个人数字助手(PDA)与Java ME(J2ME)技术结合,为开发者提供了在手机上实现类似PDA功能的平台。本文将深入探讨如何使用J2ME进行通信录管理、文件操作以及图片处理,同时介绍一个名为"PDAPDemo"的...

    j2me课程设计,服务器与客户机的发送

    【J2ME课程设计——构建服务器与客户端通信】 在IT领域,Java 2 Micro Edition(J2ME)是一种专门用于嵌入式设备和移动设备的Java平台。它为开发小型应用提供了框架,如手机游戏、应用程序和服务。本课程设计的主题...

    J2ME_移动通信介绍

    **J2ME移动通信介绍** Java 2 Micro Edition(J2ME)是Java平台的一个子集,主要用于嵌入式系统,尤其是移动设备如手机、PDA等。它为开发小型设备上的应用程序提供了一种标准化的方法,使开发者可以编写一次代码,...

    j2me城市公交查询系统(socket)

    该系统利用了Socket通信协议来实现客户端(前台,运行在J2ME环境中)与服务器端(后台,通常基于Servlet)之间的数据交互。 【描述】"j2ME城市公交查询系统(socket)"的前后台设计模式确保了系统的高效运行。前台...

    郭克华J2ME实例教程完整版之Socket编程

    在J2ME中,Socket编程允许应用程序通过TCP/IP协议进行双向通信,创建可靠的连接,实现数据的发送与接收。本教程由资深讲师郭克华指导,旨在帮助新手快速掌握这一关键技能。 首先,教程会介绍J2ME的基础知识,包括...

    基于Socket 的手机与数据库服务器通信的研究

    通过使用Socket技术和J2ME平台,可以实现手机与数据库服务器之间稳定、高效的数据通信。此外,结合定时机制和数据库技术的应用,进一步提高了系统的可靠性和实用性。这对于开发移动应用来说具有重要的参考价值和实际...

Global site tag (gtag.js) - Google Analytics