导航:首页 > 编程语言 > java释放端口

java释放端口

发布时间:2023-03-25 01:27:37

A. java Tomcat的80端口被占用,怎么解决

      1. 找到被占用的端口号,杀掉

        杀端口进程:

        (1)在dos窗口中输入netstat -aon|findstr"80"

        (2)查看最后面的数字,假设是3060,说明是PID为3060的进程在占用这个端口

        (3)任务管理器——进程——查看——选择列——勾选PID,找到PID为3060的进程,关闭进程即可

      2. 改用另一个端口,在tomcat的配置文件server.xml中新增一个节点,如下所示<Connector port="XXXX"/>

B. java中怎么换端口!

Java中修改tomcat的默认端口号,运行WEB项目的时候都要在tomcat环境中,它的默认端口号是8080,有时想要占用这个端口号而又想运行web项目时,就需要去修改它的默认端口,具体做法:

1、打开 jakarta-tomcat-5.5.9confserver.xml 找到如下代码:

<!--Defineanon-SSLCoyoteHTTP/1.1Connectoronport8080-->
<Connectorport="8080"
maxThreads="150"minSpareThreads="25"maxSpareThreads="75"
enableLookups="false"redirectPort="8443"acceptCount="100"
debug="0"connectionTimeout="20000"
disableUploadTimeout="true"URIEncoding="GBK"/>

2、上面的port=8080就是它所用的端口号,可以把它修改为80(浏览器的默认端口),这样就可以在编辑它时直接输入http://localhost/工程名称,就可以访问了!

C. java语言关闭某个指定的端口

此方法实现Closeable

这个是官方的api

closepublic void close()
throws IOException关闭此输入流并释放与此流关联的所有系统资源。此方法只执行 in.close()。

指定者:接口 Closeable 中的 close覆盖:类 InputStream 中的 close抛出:IOException - 如果发生 I/O 错误。
另请参见:in

D. java中socket函数,每次出错再运行时便告诉我端口被占用

很明显的告诉了你上次调试的程序没有完全结束,端口还在被占用。

确保程序无情退出的时候端口被释放掉。

解决:
打开任务管理器把你认为是上次调试的JAVAW.exe程序干掉就好了

E. Java多线程中如何释放某个线程占用的端口号

可以写个demo试一下啊,应该是可以的,socket接收到的消息只能被其中一个线程接收。线程1 和2 接受到的肯定不是同一个消息。会有先后之分。看你怎么控制。比如从接收的消息是ABCD,那么这相当于一个资源。线程1和2在这里拿消息,拿到之后,socket里面就少了,比如线程1拿到AB,线程2拿到CD

F. Java TCP/IP协议的Socket如何设置端口复用

你的其中一端的连接没有被及时释放掉的原因是:你没有顺利地进行TCP连接关闭的流程。最近我就因为这个问题头疼了好久,现在终于找到真正的原因和解决办法了!关键点是:在调用close之前先发送一次数据(例如,out.write(0);)。接下来我用通俗的语言来阐述原因。

如果你两端的程序都是在传送完数据后直接调用Socket的close方法断开连接的话,这就会有一个调用close方法谁先谁后的问题,先调用者是主动关闭TCP连接的那一方,而后调用者就是被动关闭TCP连接的那一方。

关闭TCP连接的过程中,双方总共有3个报文需要发送,主动关闭方只需发送1个报文,就是断开请求的报文,被动关闭方要发送2个报文,分别是 回应主动关闭方发来的断开请求报文的第一次确认报文和 第二次确认报文,第二次的确认报文用来确认已经没有数据需要发送了。

主动关闭方发送了断开请求报文后,就进入了等待被动关闭方发送确认报文的状态,一般情况下,被动关闭方马上就会发送第一次确认报文。主动关闭方收到第一次确认报文后,就会等被动关闭方的第二次确认报文,直到超时,套接字资源被操作系统回收(P.S. 虽然书上不是这么说的,但是实际的OS就是这么处理的,原因下面再说)。此时如果被动关闭方发送了第二次确认报文,整个TCP连接关闭流程就顺利结束了,所有资源就会被OS回收。

重点来了,问题在于,作为被动关闭方的程序中,在主动关闭方等待被动关闭方发送第二次确认报文时,就算执行了Socket的close也不会发送第二次确认报文,只有向主动关闭方发送数据(任意)后,被动关闭方才会发送第二次确认报文,整个流程才能顺利进行,TCP连接的资源才会被释放,下次才能重复使用同个套接字。

我自己实验出来的结果是:在两端的代码中(只有一端发送一端接收),都只使用

out.write(0);
me.close();

进行TCP连接的断开,out是Socket的OutputStream,me是已连接的Socket对象。结果,无论重复多少次运行,都能不间断地顺利运行,每次运行结束后,用资源监视器看TCP连接情况,都看到所使用的连接资源都已经被释放,并没有等待2MSL时间后才被释放,所以实际的OS的处理跟理论上的不一样。所以你的程序要等一段时间后才能再次使用同个端口并不是因为存在2MSL的等待时间,而是因为TCP连接关闭流程没有顺利进行,但是所使用的进程已经退出,OS就会自动帮你回收资源,不过需要等超时后才处理。(P.S. 我测试的OS是Windows)

如果两端的程序断开TCP连接时都是直接开始断开的过程而没有延时的话,谁是主动关闭方就不确定,两端的程序中的断开TCP连接的代码就得有发送数据的部分,如果其中有一方延时了,那延时的一方就有很大的概率是被动关闭方,另一方在调用close前就不需要发送数据了。

还有,就算TCP连接关闭的流程顺利进行,但是,下次使用同个套接字(两端套接字跟之前的相同)前得延时一下,几百毫秒就够了(具体自己调整),因为OS回收套接字资源是需要时间的,关闭TCP连接后就立马创建两端套接字跟所关闭的连接的两端套接字相同的连接也有可能因为仍然被占用而报错。

G. 关于Java.net.BindException,怎么释放被占用的端口

我有一个页面,里面是循环去请求一个URL(会请求的很快,是拿到请求结果后马上再去请求), 如果这个页面只开一个好象是没有问题的态码胡,但如果开两个这个页面(就是两个循环请求),其中一个页面就会报 Java.net.BindExecption Address already in use:connect的异常(有时候两个都会),我查了下帆拦, 好象TCP/IP每次请求都会自动分配一个端口,并且有自动释放的间隔,用netstat -a 看了下,请求页面的时候果然多出很多端口, ------解决方案-------------------- 这个好办啊,一旦产生这个异常你就重新请求,重新请求会重新分配到新的端口 ------解决方案-------------------- 短时间的大量连接,端口被占用是没办法的,可以在发生异常后等待一段时模键间再去访问 ------解决方案--------------------

H. java写的通讯短链接客户端,老是会报端口被占用的错误,跪求高手帮忙分析下是什么问题

如果你的服务器端有其他哗芹的程序将该端口占用乱模毕,那么你这个程序就要另外开启其他端口。如果其他程序释放了该端口,你再次连接的码镇时候就会成功。希望对你有帮助。

I. java 用ServerSocket监听了一个端口,在程序结束的时候没有close,现在再次执行程

用 cmd.exe 程序来输入命令

netstat-ano|find":你的端口号"

找到了的话:

taskkill/f/pid:你的进程PID(在上一条命令行中岩渗让会列出进程PID)


正常的情况下,如果你的程粗局序喊派真的已经退出了,那个端口就会自动被操作系统释放的,很可能你的程序还没有退出,只是隐藏了。


举例,假如 tomcat 启动了之后:

netstat-ano|find":8080"

得到 tomcat 进程号PID是 6435,再来:

taskkill/f/pid:6435

J. java中如何检测本机指定的UDP服务端口是否被占用并且自动分配一个可用udp端口

用于接收和发送UDP的Socket实例。该类有3个构造函数:
DatagramSocket():通常用于客户端编程,它并没有特定监听的端口,仅仅使用一个临时的。程序会让操作系统分配一个可用的端口。
DatagramSocket(int port):创埋则瞎建实例,并固定监听弯空Port端口的报文。通常用于服务端
DatagramSocket(int port, InetAddress localAddr):这是个非常有用的构建器,当一台机器拥有多于一个IP地址的时候,由它创建的实例仅仅接收来自LocalAddr的报文。
DatagramSocket具有的主要方法如下:
1)receive(DatagramPacket d):接收数据报文到d中。receive方法产生一个“阻塞”。“阻塞”是一个专业名词,它会产生一个内部循环,使程序暂停在这个地方,直到一个条件触发。
2)send(DatagramPacket dp):发送报文dp到目的地。
3)setSoTimeout(int timeout):设置超时时间,单位为毫秒。
4)close():关闭DatagramSocket。在应用程序退出的时候,通常会主动释放资源,关闭Socket,但是由于异常地退出可能造成资源无法回收。所以,应该在程序完成时,盯扒主动使用此方法关闭Socket,或在捕获到异常抛出后关闭Socket。

阅读全文

与java释放端口相关的资料

热点内容
艺术家的解压方式 浏览:290
如何分段压缩文件 浏览:137
java秒转分钟 浏览:107
生活中的玛丽主演 浏览:264
紫牛程序员电子书 浏览:67
每个软件自带编译器吗 浏览:818
夏晴的都市小说叫什么 浏览:928
pdf中复制文字不显示 浏览:534
回踩黄金分割线选股器源码 浏览:605
腾讯游戏服务器怎么总是丢包 浏览:726
总之,末之过年电影 浏览:146
pdf提取器 浏览:565
编程语言10年热度 浏览:772
《指点蜜津》txt百度云 浏览:332
好色小姨全集下载 浏览:534
宅男在线观看电影 浏览:863
韩国演员朱艺彬图片 浏览:42
从现代买物资到民国小说 浏览:865
我的世界起床大作战服务器地址 浏览:667
翠微居合集百度云 浏览:524