- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。
想改进这个问题?将问题更新为 on-topic对于堆栈溢出。
2年前关闭。
Improve this question
我正在客户端的 Java 代码库上执行 Maven 构建,其中一个测试套件失败了。日志中报告的错误与我使用 NetBeans 调试器单步调试代码时发现的错误相同。
原生函数 java.net.PlainDatagramSocketImpl.send()
正在抛出 BindException
- “无法分配请求的地址”。我不能比这更深入地研究代码,因为它是一个原生函数。
在更高级别上,代码正在执行网络的基本测试。
DatagramSocket ds = new DatagramSocket(service.getNetworkConfiguration().getBindSocketAddress().getPort() + 100);
InetSocketAddress bindSocketAddress = service.getNetworkConfiguration().getBindSocketAddress();
ds.send(new DatagramPacket(message, message.length, bindSocketAddress.getAddress(), bindSocketAddress.getPort()));
service
返回的IP地址,因此包含在
bindSocketAddress
中如前所述,是 0.0.0.0 - 我尝试了不同的端口(32168、22332、1234),都出现相同的错误。
+ 100
出现在
DatagramSocket
的定义中port 显然是故意的,而且这个测试套件已经为其他人成功了很长时间,并且已经到位。
netstat -a
而且我没有在绑定(bind)端口列表中看到我使用过的任何端口。
0.0.0.0
似乎无效;实际上,JDK(InetAddress.java)中的一条注释说:未指定的地址(也称为anylocal或通配符地址)不能用作通配符地址为0.0.0.0的IP数据包的目标地址。我将代码更改为使用“localhost”(参见第 4 条评论),它解决了问题。但是,由于我不明白的原因,上面的代码可能是有效的;当我与代码的开发人员澄清时,我会发布跟进或答案。
最佳答案
请看我的“更新”——这个问题没有实际意义。
查看我的长评论以获得更全面的解释。
我将问题留在这里,以防问题末尾的“更新”与问题本身的主题无关,被证明对它有用的人发现。
关于java - DatagramSocket.send() 失败, "BindException: Cannot assign requested address"为 0.0.0.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5780409/
我正在用 Java 开发游戏,我正在尝试通过互联网在同一台计算机上的客户端和服务器之间进行通信,并最终在多台计算机之间进行通信。我以前可以,但现在服务器似乎没有收到来自客户端的任何数据包。我会尝试发布
我正在尝试设置/增加数据报套接字的接收缓冲区大小。我想这样做,因为在位于同一本地网络上的 PC 和 Android 设备之间发送数据时我遇到了一些随机数据包丢失,我想测试增加缓冲区大小是否会对减少此
我编写了一个非常简单的 kotlin 程序来从客户端接收图像。关键部分如下。 while (running) { try { buf = ByteA
在我的 Android 应用程序中,我发送了 UDP 数据包,并使用此代码等待特定的数据包。当它到达时,我不需要再听了。但是,它处于“接收模式”,当我调用 socket.close() 时,它会抛出异
我正在用 Java 编写一个聊天程序,我已经被这个问题困了几个小时。这是我的类,等待客户端连接到服务器。每次新客户端连接时,我都会创建一个新的 ChatClient(String name, Data
我正在编写一段 UDP 网络程序(客户端 - 服务器),但遇到了一些麻烦。 我想使用流来输入/输出数据,所以我用谷歌搜索“udp inputstream”并找到UDPInputStream和 UDPO
尽管我知道我的 UDP 数据包按预期到达(通过 Wireshark),并且关闭了 Windows 防火墙 - 我非常简单的 Java 代码从未收到任何数据包。 byte[] buffer = new
以下代码可以重现该问题: int errAt = -1; try { System.out.println("start..."); for (int i = 0; i < 400
我有一个客户端需要在特定端口上监听传入的 UDP 广播消息。我通过使用 1500 毫秒的 setSoTimeout 初始化绑定(bind)到端口的 DatagramSocket 对象来实现此目的。 w
我已经编写了简单的测试类,用于监听 Eth 并接收所有 UDP 数据包,这些数据包将转到端口 5001: public class Main { public static void main(S
我在 Lua 中为游戏编写了一个插件,它通过 UDP 数据包(512 字节)将玩家信息发送到远程服务器,远程服务器从数据包中读取数据并将所有玩家信息聚合到一个 xml 文件中(然后可以是所有玩家都可以
我使用 Java 中的 DatagramSocket 类从用 C 编写的客户端接收 udp 数据包。以下是接收代码(服务器套接字已设置): byte[] inputByte = new byte[1]
在 Linux (Ubuntu 12.04) 和 Windows 7 上调用此代码,您会得到截然不同的结果: DatagramSocket socket = new DatagramSocket(44
我正在开发一个项目,其中包含 1 个 Java 服务器、1 个 Android 客户端、1 个 Dart Web 客户端和 1 个 Java 客户端。我已经完成了 Java 服务器和客户端并可以工作。
我有一个 DatagramSocket,我在循环中接收数据,它最终停止接收数据包。我向服务器发送一条建立连接的问候消息。然后我开始按预期接收数据包。最终它停止接收。 发送服务器已验证它们仍在通过 tc
这个问题已经有答案了: Sockets: Discover port availability using Java (10 个回答) 已关闭 7 年前。 这个问题是关于数据报套接字而不是 TCP 套
我正在开发 Java UDP 应用程序。应用程序中有一个线程,其唯一的工作是监听特定端口上的服务器。 我编写应用程序时错误地假设我正在监听的服务器将始终处于运行状态;然而,这是一个错误的假设。 如果我
我创建了一个java服务器,它在特定端口上监听udp数据包,当收到数据包时,它会创建一个新线程,并将一个新的datagramsocket绑定(bind)到该端口,因此,如果它在该端口上收到10个数据包
我正在创建一个 java 多人游戏,它解决了 LAN 上客户端和服务器之间不断发送 DatagramPackets 的问题。 客户端的 DatagramSocket 将随机停止从服务器接收数据包,因此
嗨,我想循环遍历我拥有的 n 个端口的列表,并为每个端口创建一个 DatagramSocket: for(int i = 0; i socketList = new ArrayList(); soc
我是一名优秀的程序员,十分优秀!