Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
抑制:java.net.SocketException:主机java SSLServer套接字中的软件中止了已建立的连接_Java_Sockets_Ssl_Server - Fatal编程技术网

抑制:java.net.SocketException:主机java SSLServer套接字中的软件中止了已建立的连接

抑制:java.net.SocketException:主机java SSLServer套接字中的软件中止了已建立的连接,java,sockets,ssl,server,Java,Sockets,Ssl,Server,嗨,我正在尝试使ssl套接字服务器与java客户端是浏览器 使用以下代码 试一试{ KeyStore trustStore=KeyStore.getInstance(KeyStore.getDefaultType()); InputStream tstore=SSLSocket.class .getResourceAsStream(“/javawaf.p12”); load(tstore,“javawaf.toCharArray()); t存储关闭(); TrustManagerFactory

嗨,我正在尝试使ssl套接字服务器与java客户端是浏览器 使用以下代码


试一试{
KeyStore trustStore=KeyStore.getInstance(KeyStore.getDefaultType());
InputStream tstore=SSLSocket.class
.getResourceAsStream(“/javawaf.p12”);
load(tstore,“javawaf.toCharArray());
t存储关闭();
TrustManagerFactory tmf=TrustManagerFactory
.getInstance(TrustManagerFactory.getDefaultAlgorithm());
tmf.init(信任库);
KeyStore KeyStore=KeyStore.getInstance(KeyStore.getDefaultType());
InputStream kstore=SSLSocket.class
.getResourceAsStream(“/javawaf.p12”);
load(kstore,“javawaf.toCharArray());
KeyManagerFactory kmf=KeyManagerFactory
.getInstance(KeyManagerFactory.getDefaultAlgorithm());
init(keyStore,“javawaf.toCharArray());
SSLContext ctx=SSLContext.getInstance(“TLS”);
init(kmf.getKeyManager(),tmf.getTrustManager(),
SecureRandom.getInstanceStrong());
SSLServerSocketFactory=ctx.getServerSocketFactory();
InetSocketAddress ew=新的InetSocketAddress(“localhost”,8444);
try(SSLServerSocket侦听器=(SSLServerSocket)factory.createServerSocket(ew.getPort(),0,ew.getAddress()){
System.out.println(“侦听端口:8444”);
while(true){
try(Socket=listener.accept()){
System.out.println(“新请求”);
字符集编码=StandardCharsets.UTF_8;
BufferedReader reader=新的BufferedReader(新的InputStreamReader(
socket.getInputStream(),encoding.name());
//这里有问题
getheaderline(reader.forEach(System.out::println);
PrintWriter out=新的PrintWriter(socket.getOutputStream());
println(getResponse(encoding));
out.flush();
}捕获(例外e){
e、 printStackTrace();
}
}
}
}捕获(例外e){
e、 printStackTrace();
}
}
私有静态字符串getResponse(字符集编码){

var body=“服务器说hi,我曾经遇到过类似的问题,但它连接到了使用资源进行尝试。解决方案是使用“classic”初始化并最终关闭,也许您可以尝试一下。仅此一行Socket Socket=listener.accept()就足够了。