java - socket.outputStream 为什么要花这么多时间?

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

请帮助我解决这个问题。

最佳答案

这将是花时间的 SSL 握手。如果安卓支持javax.net.debug=ssl,handshake您可以查看它以了解更多信息。

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

关于java - socket.outputStream 为什么要花这么多时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16449325/

相关文章:

Java P2P 网络,对不同的入站和出站连接使用相同的端口

java - Java 中唯一的随机 srand? (就像在 C++ 中一样)

android - 编辑 Spanned 文本

Android:AudioTrack 开始时发出咔哒声

java - Android Studio 不警告非详尽的 switch 语句

java - Activity 之间的预加载器 - android java

android - 在相对布局中将 textView 定位在另一个 textView 下的问题

C++ winsock TCP监听

linux - 获取事件接口(interface)的mac地址

python - 如何让 2 个客户端在都连接到会点服务器后直接相互连接?