DatagramSocket dp = new DatagramSocket(by,0,by.length,InetAddress.getByName("127.0.0.1"),10000);哪里错了
时间: 2024-09-26 20:09:59 浏览: 28
UDP.rar_udp协议 java
在这个 `DatagramSocket` 的构造函数创建示例中,看起来有两处潜在的问题:
1. **数据缓冲区长度**:`new DatagramSocket(by, 0, by.length, ...)` 中的 `by.length` 可能不是正确的接收缓冲区大小。在 UDP 地址族中,通常不需要显式地指定缓冲区的长度,除非你有一个特定的需求。如果你想要使用默认大小,直接传入0即可。
2. **目标端口**:`InetAddress.getByName("127.0.0.1"), 10000` 部分看起来是在本地主机上监听 10000 端口,但如果这不是你要连接的目标主机的端口,你需要替换为实际目标主机的 IP 和端口号。
修正后的代码可能像这样:
```java
DatagramSocket dp = new DatagramSocket(by, 0, InetAddress.getByName("127.0.0.1"), 10000);
```
如果要发送到远程服务器,那么应该是:
```java
DatagramSocket dp = new DatagramSocket(by, 0, InetAddress.getByName("remote_ip_address"), remote_port);
```
这里需要将 `"remote_ip_address"` 替换为实际的远程主机IP地址,并将 `remote_port` 替换为你想要发送数据的目标端口。
阅读全文