У меня проблема. Я сделал приложение J2ME, которое соединяет сервер через UDP. Приложение работает нормально, но я не могу получить исключение, когда сервер выключен. Поэтому я хочу, чтобы, например, если сервер не работал, приложение отображало предупреждение или что-то, что не может подключиться к серверу.
Я знаю, что могу использовать исключение ConnectionNotFoundException
, но я не знаю, почему мой код там никогда не вводится.
Вот фрагмент кода, который устанавливает соединение по UDP.
public void verifyUDPMessages(String idOperacion)
{
// String portString = "57775";
try
{
String rdo = "";
DatagramConnection dc = (DatagramConnection) Connector
.open("datagram://" + ipServer + ":" + portServer);
SendUDP(dc, ""+idNextel+"^"+idUltMensaje+"^"+idOperacion);
boolean keepBucle = true;
int tryReceive = 0;
while (keepBucle)
{
Datagram dg = dc.newDatagram(300);
dc.receive(dg);
// System.out.println(tryReceive);
String incidente = new String(dg.getData(), 0, dg.getLength());
// Have we actually received something or
// is this just a timeout ?
if (dg.getLength() > 0) {
if (incidente.equals("0")) {
keepBucle = false;
}
else {
System.out.println(incidente);
inicUIconectoServlet(incidente);
keepBucle = false;
}
}
System.out.println(tryReceive);
if (tryReceive == 5) {
keepBucle = false;
}
else {
tryReceive++;
}
}
// System.out.println(tryReceive);
dc.close();
}
catch ( ConnectionNotFoundException cnfe)
{
// Alert a = new Alert("Client", "Please run Server MIDlet first on port " + portServer,
// null, AlertType.ERROR);
System.out.println("error");
cnfe.printStackTrace();
// a.setTimeout(Alert.FOREVER);
// display.setCurrent(a);
}
catch (IOException ioe)
{
ioe.printStackTrace();
}
}