
import javax.net.ssl.SSLServerSocket;import javax.net.ssl.SSLServerSocketFactory;import javax.net.ssl.SSLSocket;import java.io.BufferedReader;import java.io.inputStream;import java.io.inputStreamReader;public class EchoServer {public static voID main(String[] arstring) { try { SSLServerSocketFactory sslserversocketfactory = (SSLServerSocketFactory) SSLServerSocketFactory.getDefault(); SSLServerSocket sslserversocket = (SSLServerSocket) sslserversocketfactory.createServerSocket(23423); SSLSocket sslsocket = (SSLSocket) sslserversocket.accept(); inputStream inputstream = sslsocket.getinputStream(); inputStreamReader inputstreamreader = new inputStreamReader(inputstream); BufferedReader bufferedreader = new BufferedReader(inputstreamreader); String string = null; while ((string = bufferedreader.readline()) != null) { System.out.println("odpowIEdz z servera: "+string); System.out.flush(); } } catch (Exception exception) { exception.printstacktrace(); }}} 这是我的客户:
package andr.andr;import java.io.BufferedReader;import java.io.BuffereDWriter;import java.io.inputStream;import java.io.inputStreamReader;import java.io.OutputStream;import java.io.OutputStreamWriter;import javax.net.ssl.SSLSocket;import javax.net.ssl.SSLSocketFactory;import androID.app.Activity;import androID.os.Bundle;import androID.vIEw.VIEw;public class AndroIDssl2Activity extends Activity {/** Called when the activity is first created. */@OverrIDepublic voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.main);}public voID fun(VIEw vIEw){ try { SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault(); SSLSocket sslsocket = (SSLSocket) sslsocketfactory.createSocket("87.206.146.154",23423); inputStream inputstream = system.in; inputStreamReader inputstreamreader = new inputStreamReader(inputstream); BufferedReader bufferedreader = new BufferedReader(inputstreamreader); OutputStream outputstream = sslsocket.getoutputStream(); OutputStreamWriter outputstreamwriter = new OutputStreamWriter(outputstream); BuffereDWriter buffereDWriter = new BuffereDWriter(outputstreamwriter); String string = "Echo test"; buffereDWriter.write(string + '\n'); buffereDWriter.flush(); } catch (Exception exception) { exception.printstacktrace(); }}} 我的问题在于我不知道如何将证书放到AndroID应用程序中.我不能使用开始参数:
java -Djavax.net.ssl.keyStore = mySrvKeystore -Djavax.net.ssl.keyStorePassword = 123456 EchoServer
和
java -Djavax.net.ssl.trustStore = mySrvKeystore -Djavax.net.ssl.trustStorePassword = 123456 EchoClIEnt
喜欢普通的java项目.那我怎么能把证书指向androID应用程序.我谷歌很多,没有找到任何东西,但我不相信我是唯一有问题的人.任何人都可以清楚地向我解释我该怎么做.谢谢你的帮助.
解决方法 您的工厂的↳androID.net.SSLCertificateSocketFactory和您的-D选项的System.setprop也许? 总结以上是内存溢出为你收集整理的在android上使用SSL全部内容,希望文章能够帮你解决在android上使用SSL所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)