UDP绑定失败

时间:2011-11-17 15:47:36

标签: java networking udp

我正在尝试连接到远程服务器,但是当我使用远程服务器地址实现BindException时,我得到DatagramSocket。它适用于localhost。

dstAddress = new InetSocketAddress(server, servPort);
srcAddress = new InetSocketAddress(srcPort);

try{
sock = new DatagramSocket();
sock.setReuseAddress(true);
} catch (SocketException ex) {

}

public void connect() {
sock.bind(srcAddress);
sock.connect(dstAddress);
}

5 个答案:

答案 0 :(得分:1)

您根本不必致电bind()。创建DatagramSocket时,已经为您选择了一个端口。 connect()也不是必需的,您可以选择在每个DatagramPacket中设置目标地址。

答案 1 :(得分:0)

源端口已在使用中。

答案 2 :(得分:0)

scrPort使用0。这将允许操作系统在绑定套接字时选择一个打开的端口。

答案 3 :(得分:0)

您无需致电bind()connect()。源端口在DatagramSocket构造函数中选择(正如您已经完成的那样),并且在您发送的每个DatagramPacket中设置目标地址和端口。

例如,请参阅this

答案 4 :(得分:0)

良好做法: - 如果不需要,请不要指定源端口。