DatagramSocket.isBound() reports false if the socket is bound
implicitly :-
import java.net.*;
public class Test {
public static void main(String args[]) throws Exception {
DatagramSocket s = new DatagramSocket((SocketAddress)null);
s.setBroadcast(true);
byte b[] = "hello".getBytes();
InetAddress ia = InetAddress.getByName("localhost");
DatagramPacket pac = new DatagramPacket(b, b.length, ia, 2000);
s.send(pac);
if (!isBound()) {
InetSocketAddress isa = new InetSocketAddress(isa, 3000);
s.bind(isa);
}
}
}