0

こんにちは、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();」上記のコードでは、かなりの時間がかかっています。1分近く。なぜかわからないのですが?この問題を解決するのを手伝ってください。

以下は、対応するクライアント コード (デスクトップ) です。

    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);

この問題で私を助けてください。

4

1 に答える 1

1

それはSSLハンドシェイクに時間がかかります。Android がjavax.net.debug=ssl,handshakeをサポートしている場合は、詳細を確認できます。

しかし、なぜ匿名の暗号スイートを使用しているのですか? 安全でないことを知っていますか?

于 2013-05-08T23:57:46.327 に答える