在我的应用程序中,将有一个线程始终在运行,并且正在发送或监听某些端口。

该应用程序在后台运行。有时在创建套接字时,我发现以前由同一线程使用的端口没有在套接字的close()上释放。所以我尝试了这样

        dc = new DatagramSocket(inetAddr);
        dc.setReuseAddress(true);

问题是,它也没有到达第二行。在第一行本身中,我得到的是BindException: Address already in use

谁能帮助我如何处理这种情况。

有什么办法可以释放端口?

感谢和问候,
苏曼185

最佳答案

使用MulticastSocket。不带参数构造它。隐式调用setReuseAddress(true)。然后调用bind()。

目前,您调用setReuseAddress()太晚了,以至于它无法发挥任何作用。

10-08 07:12