hi,
ich hab ne methode die überprüfen soll of ein ziel system an einem bestimmten port "lauscht". das zielsystem ist ein sipclient der wahlweise auf port 5060 UDP oder TCP lauscht.
die überprüfung soll für tcp und udp funktionieren. mit tcp klappts das bereits. bei udp lässt sich scheinbar ein datagramsocket aufbauen auch wenn das zielsystem gar nicht rennt.
host="10.0.0.50"
port="5060"
die connect methode der klasse DatagramSocket versteh ich nicht. es wird keine exception geworfen obwohl der server nicht rennt. bei tcp wird hier eine IOException geworfen
laut api beschreibung müsste eine SocketException geworfen werden:
=>SocketException - if the connect fails
DatagramSocket (Java 2 Platform SE v1.4.2)
habs auch schon mit der send() method versucht. leider auch ohne erfolg.
ich hab ne methode die überprüfen soll of ein ziel system an einem bestimmten port "lauscht". das zielsystem ist ein sipclient der wahlweise auf port 5060 UDP oder TCP lauscht.
die überprüfung soll für tcp und udp funktionieren. mit tcp klappts das bereits. bei udp lässt sich scheinbar ein datagramsocket aufbauen auch wenn das zielsystem gar nicht rennt.
host="10.0.0.50"
port="5060"
Code:
DatagramSocket dSocket = null;
try {
dSocket = new DatagramSocket();
InetAddress address = InetAddress.getByName(host);
dSocket.setSoTimeout(5000);
dSocket.connect(new InetSocketAddress(address, Integer.valueOf(port))) ;
return true;
} catch (SocketException e) {
return false;
} catch (UnknownHostException e) {
return false;
} finally {
if (dSocket != null) {
dSocket.close();
}
}
die connect methode der klasse DatagramSocket versteh ich nicht. es wird keine exception geworfen obwohl der server nicht rennt. bei tcp wird hier eine IOException geworfen
laut api beschreibung müsste eine SocketException geworfen werden:
=>SocketException - if the connect fails
DatagramSocket (Java 2 Platform SE v1.4.2)
habs auch schon mit der send() method versucht. leider auch ohne erfolg.