socket.outputStream花了这么多时间为什么?

时间:2013-05-08 20:10:00

标签: java android networking ssl

您好我已经在Android中编写了一个服务器。以下是我的代码: -

SSLServerSocket ss=(SSLServerSocket)sslssf.createServerSocket(Constants.CHAT_SERVER_PORT);
final String[] enabledCipherSuites = { "SSL_DH_anon_WITH_RC4_128_MD5" };
ss.setEnabledCipherSuites(enabledCipherSuites);         
while(true) {
    Socket s=ss.accept();
    OutputStream out=s.getOutputStream();
    ObjectOutputStream oos=new ObjectOutputStream(out);
    oos.flush();
    Android android=new Android();
    oos.writeObject(android);
    InputStream sis= s.getInputStream();
    ObjectInputStream ois=new ObjectInputStream(sis);
}

一切都很顺利。但是“OutputStream out = s.getOutputStream();”在上面的代码中花费了大量的时间。差不多一分钟。我不知道为什么?请帮我解决这个问题?

以下是相应的客户端代码(桌面): -

    SSLSocket socket= (SSLSocket)sslsf.createSocket(ip,Constants.CHAT_SERVER_PORT);
        final String[] enabledCipherSuites = { "SSL_DH_anon_WITH_RC4_128_MD5" };
        socket.setEnabledCipherSuites(enabledCipherSuites);         
        InputStream in=socket.getInputStream();     
        OutputStream out=socket.getOutputStream();          
        ObjectInputStream ois=new ObjectInputStream(in);            
        ObjectOutputStream oos=new ObjectOutputStream(out);         
        Object obj=ois.readObject();                
        SocketInfo sockInfo=new SocketInfo(socket,oos,ois,ip);

请在这个问题上帮助我。

1 个答案:

答案 0 :(得分:1)

这将是SSL握手花时间。如果Android支持javax.net.debug=ssl,handshake,您可以查看它以了解详情。

但是你为什么要使用匿名密码套件呢?你知道它不安全吗?