Java SSLSocket InputStream read()在第一次连接后阻塞

Java SSLSocket InputStream read()在第一次连接后阻塞,java,sockets,ssl,Java,Sockets,Ssl,我有一个简单的程序,可以创建多个SSL套接字连接到一个服务器,该服务器发送回简单的文本数据。第一个ssl连接工作正常。在我创建到同一服务器和端口的第二个ssl连接后,执行会在read()调用处阻塞。如果我创建了多个单独的程序,每个程序只进行一个连接并并行运行,那么它就可以正常工作。因此,服务器可以处理多个并行连接。当我从同一个程序中创建多个连续连接时,read()块。我先关闭第一个连接,然后再打开第二个连接。还有一件事,当服务器和客户端都在同一台机器上运行时,我无法重现这个问题,只有当服务器远程

我有一个简单的程序,可以创建多个SSL套接字连接到一个服务器,该服务器发送回简单的文本数据。第一个ssl连接工作正常。在我创建到同一服务器和端口的第二个ssl连接后,执行会在read()调用处阻塞。如果我创建了多个单独的程序,每个程序只进行一个连接并并行运行,那么它就可以正常工作。因此,服务器可以处理多个并行连接。当我从同一个程序中创建多个连续连接时,read()块。我先关闭第一个连接,然后再打开第二个连接。还有一件事,当服务器和客户端都在同一台机器上运行时,我无法重现这个问题,只有当服务器远程运行时才会发生。有什么建议/想法吗?非常感谢您的任何意见

public static int getPort(String agentHost, int agentPort, String token) {
int port_num = 0;
 InputStream in = null;
 BufferedWriter out = null;
 SSLSocket s = null;
try {
    s = (SSLSocket) SSLSocketFactory.getDefault().createSocket(agentHost, agentPort);
    String message = token;

    out = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
    out.write(message);
    out.flush();

    in =s.getInputStream();
    byte[] buffer = new byte[32];
    System.out.println("Waiting on read");
    int bytes_read = in.read(buffer);
    System.out.println("read " + bytes_read + " bytes" );
    if(bytes_read > 0) {
        String port_s = new String(buffer, 0, bytes_read, "UTF-8");   // if the charset is UTF-8  
        port_s = port_s.trim();
        port_num = Integer.parseInt(port_s);
    } 
    else 
        System.out.println("------Error in call---------");
    }  
 catch ( IOException e) {
    e.printStackTrace();
 }
 finally {
     try {
         if(s != null) s.close();
         } catch (IOException e) {
                e.printStackTrace();
         }
 }
return port_num;    

}

问题显然出在服务器端。它没有发送。谢谢。你是对的,这是服务器的问题。它没有发送。