Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.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 停止监听端口_Java_Ssl_Websphere_Port - Fatal编程技术网

Java 停止监听端口

Java 停止监听端口,java,ssl,websphere,port,Java,Ssl,Websphere,Port,我有一个在特定端口上接受SSL连接的应用程序。当我从Websphere管理控制台停止应用程序,然后再次启动它时,我得到一个异常,该异常抱怨端口仍在使用中。我需要完全关闭并重新启动Websphere以使应用程序重新工作 在Java中停止监听端口的正确方法是什么?我不确定在Java中是如何做到的,但是关闭套接字(.ServerSocket上的close()会关闭端口。尽管如此,许多操作系统在关闭同一端口30秒后仍不允许重复使用该端口,以防止新连接读取旧消息。只需关闭套接字句柄,类似于。可能会有帮助。

我有一个在特定端口上接受SSL连接的应用程序。当我从Websphere管理控制台停止应用程序,然后再次启动它时,我得到一个异常,该异常抱怨端口仍在使用中。我需要完全关闭并重新启动Websphere以使应用程序重新工作


在Java中停止监听端口的正确方法是什么?

我不确定在Java中是如何做到的,但是关闭套接字(.ServerSocket上的close()会关闭端口。尽管如此,许多操作系统在关闭同一端口30秒后仍不允许重复使用该端口,以防止新连接读取旧消息。

只需关闭套接字句柄,类似于。可能会有帮助。

创建上下文侦听器并在web.xml中注册它。然后可以在
contextdestromed()
调用中关闭所有打开的套接字

详见此


谢谢,但我的应用程序在循环中接受传入连接。我如何知道Websphere是否正在关闭我的应用程序?如果您正在打开一个端口,Websphere将如何进入并为您关闭该端口?应用程序服务器将关闭应用程序,并且不会关闭WAS容器未管理的资源,因为应用程序服务器对这些资源没有任何线索。关闭端口应该是应用程序的责任。同样正如Bob Turbo所提到的,端口关闭后可能在短时间内不可用(这由操作系统执行)。@Hippo:理想情况下,打开端口的应用程序负责该端口的正常关闭。在您的情况下,您需要跟踪(在数组/列表等中)循环中打开的所有端口。您的意思是我应该关闭contextDestroyed()中打开的端口,正如ZZ Coder所描述的那样?@Hippo:重要的是关闭套接字,是的,这可能是一个可以做到这一点的地方。
ServerSocket ss = new ServerSocket();
ss.setReuseAddress(true);
ss.bind(port);