在我的应用程序中,将有一个线程始终在运行,并且正在发送或监听某些端口。
该应用程序在后台运行。有时在创建套接字时,我发现以前由同一线程使用的端口没有在套接字的close()上释放。所以我尝试了这样
dc = new DatagramSocket(inetAddr);
dc.setReuseAddress(true);
问题是,它也没有到达第二行。在第一行本身中,我得到的是
BindException: Address already in use
。谁能帮助我如何处理这种情况。
有什么办法可以释放端口?
感谢和问候,
苏曼185
最佳答案
使用MulticastSocket
。不带参数构造它。隐式调用setReuseAddress(true)。然后调用bind()。
目前,您调用setReuseAddress()太晚了,以至于它无法发挥任何作用。