Sum*_*man 7 java sockets android exception
在我的应用程序中,将有一个线程始终在运行,并将发送或侦听某个端口.
此应用程序在后台运行.有时在创建套接字时,我发现之前由同一个线程使用的端口没有在套接字的close()上释放.所以我试着这样
dc = new DatagramSocket(inetAddr);
dc.setReuseAddress(true);
Run Code Online (Sandbox Code Playgroud)
问题是,它也没有到达第二行.在第一行本身我得到了解释BindException: Address already in use.
谁能帮助我如何处理这种情况.
有没有办法释放端口?
谢谢和问候,
SSuman185
poy*_*poy 14
DatagramSocket(inetAddr)绑定到端口.你需要setReuseAddress(true)在绑定之前.
为此...使用以下内容:
dc = new DatagramSocket(null);
dc.setReuseAddress(true);
dc.bind(inetAddr);
Run Code Online (Sandbox Code Playgroud)
此构造函数使端口保持未绑定状态.
用一个MulticastSocket.构造它没有参数.这隐式调用setReuseAddress(true).然后调用bind().
目前你调用setReuseAddress()太晚了,它没有做任何好事.
| 归档时间: |
|
| 查看次数: |
11700 次 |
| 最近记录: |