当前位置: 首页 > 面试题库 >

如何在Java代码中为数据报套接字设置重用地址选项?

谭煜
2023-03-14
问题内容

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

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

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

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

谁能帮我解决这种情况。

有什么办法释放端口?

谢谢与问候,
SSuman185


问题答案:

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

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



 类似资料:
  • 问题内容: 我想获取启动程序的计算机的IP地址,然后将其发送到客户端,但是我总是得到0.0.0.1而不是真实的IP地址(例如127.0.0.1)。 我目前可以获取端口,但无法获取IP地址。 我怎么才能得到它? 最好的解决方案是能够使用。这是我目前正在做的事情: 编辑: 我知道我的思维方式走错了路。所以我的问题是:获得自己的IP地址的最佳方法是什么? 问题答案: 当您将套接字设为0.0.0.0时,这

  • 这是我第一次在任何编程语言中使用套接字(我对这个主题一点都不熟悉),我很难理解如何从不同的代码位置发送数据。 我想把数据从一个socket类发送到另一个serverplace,而不是socket类。我该怎么做? 这是我的代码: 服务器JAVA 服务器线程。JAVA 假设我想从项目中的其他类调用sendMessage。有办法吗? 谢谢

  • 在Java建立TCP连接时,需要创建套接字。我使用下面的构造函数来创建套接字。公共套接字(InetAddress address,int port,InetAddress localAddr,int localPort)抛出IOException 根据Java API,localAddress应该是有效的InetAddress或null。当我提供作为本地地址时,在本地计算机(如和远程计算机)上建立

  • 问题内容: 符号可以在一定的地址链接如图所示这里。我的问题是,是否可以对部分进行相同的处理?也就是说,给定一些目标文件,是否可以指定节将被重定位到的基址? 或者,是否可以在最终链接之后重新设置部分的基础?也就是说,要更改二进制文件中某个节的地址,并使所有受重定位影响的信息(如该节中的相对分支等)都可以正确地重定位。 如果我的问题不清楚,我可以对其进行编辑并添加图像以更好地解释。 问题答案: 从您参

  • 我有一个.NET套接字(),我想将它用于UDP(无连接通信)。我想用轮询接收数据报,也就是说,我想调用方法来检查一个数据报是否可用。如果是,我调用来接收它而不阻塞。如果不是,我会等待,稍后再投票。但现在我的问题是: 如何确定一个数据报何时结束而下一个数据报何时开始?

  • 我试图通过Windows服务从套接字接收数据,但当我建立连接时,它会立即生效。我希望不断地接收它(当端口关闭时,它将断开连接)。我怎样才能做到这一点? 这是我现在的输出; “GET/HTTP/1.1 主持人:127.0.0.1:1994 连接:保持活力 缓存控制:最大年龄=0 升级-不安全-请求: 1 用户代理:Mozilla/5.0(Windows NT 10.0;Win64;x64)Apple