M
Mitschu
Hi
My tomcat Server communicates with an external device with TCP
Sockets. The call is from a TimerTask initalized as follows:
t17 = new Timer();
t17.schedule(new ExternalTimerTask(fky_id), dd, 500);
The TT see below:
public void run() {
try {
try {
sisag.komm.CSisCad SisCad = new sisag.komm.CSisCad(fky_id);
String sErrorReceive = "";
sErrorReceive = SisCad.recvString(fky_id);
if(sErrorReceive.startsWith("1") ||
sErrorReceive.startsWith("0")) {
sTemp = sErrorReceive.substring(0,8);
i0 = java.lang.Integer.parseInt(sTemp,2);
String sAktuell = ""+i0+""+i3+""+i4+""+i5;
if(sLastZustand.equals("")|| !
sLastZustand.equals(sAktuell)) {
//Update database
sLastZustand=sAktuell;
}
} else {
System.out.println("data not valid:"+sErrorReceive);
}
} catch(Exception e) {
System.out.println("Exception in SisCadTimerTask: " + e);
}
Thread.sleep(100);
} catch (InterruptedException e) {
System.out.println("InterruptedException in SisCadTimerTask: "
+ e);
}
} // end of run
and the called Socket looks like:
public String recvString(String region) {
try {
skt.connect (new InetSocketAddress(sIP, iPort),
iTimeOut);
if (skt.isConnected()) {
sReturn = "online";
sData = "";
BufferedReader in = new BufferedReader(new
InputStreamReader(skt.getInputStream()));
if (true) {
sData += in.readLine(); // readLine: Read one
line and output it
sReturn = sData;
}
in.close();
}
else {
System.out.println("can't open socket");
}
skt.close();
} catch (Exception e) {
System.out.println("Receive1 Exception: "+e);
}
return sReturn.substring(5,21);
}
If the external device looses power supply. The TimerTask will be
killed. If eg. the network connection is lost, I got an exception and
the TimerTask is still running.
There shoulb be an exception as well if there is a power failure.
Thanks for any help
Mitschu
My tomcat Server communicates with an external device with TCP
Sockets. The call is from a TimerTask initalized as follows:
t17 = new Timer();
t17.schedule(new ExternalTimerTask(fky_id), dd, 500);
The TT see below:
public void run() {
try {
try {
sisag.komm.CSisCad SisCad = new sisag.komm.CSisCad(fky_id);
String sErrorReceive = "";
sErrorReceive = SisCad.recvString(fky_id);
if(sErrorReceive.startsWith("1") ||
sErrorReceive.startsWith("0")) {
sTemp = sErrorReceive.substring(0,8);
i0 = java.lang.Integer.parseInt(sTemp,2);
String sAktuell = ""+i0+""+i3+""+i4+""+i5;
if(sLastZustand.equals("")|| !
sLastZustand.equals(sAktuell)) {
//Update database
sLastZustand=sAktuell;
}
} else {
System.out.println("data not valid:"+sErrorReceive);
}
} catch(Exception e) {
System.out.println("Exception in SisCadTimerTask: " + e);
}
Thread.sleep(100);
} catch (InterruptedException e) {
System.out.println("InterruptedException in SisCadTimerTask: "
+ e);
}
} // end of run
and the called Socket looks like:
public String recvString(String region) {
try {
skt.connect (new InetSocketAddress(sIP, iPort),
iTimeOut);
if (skt.isConnected()) {
sReturn = "online";
sData = "";
BufferedReader in = new BufferedReader(new
InputStreamReader(skt.getInputStream()));
if (true) {
sData += in.readLine(); // readLine: Read one
line and output it
sReturn = sData;
}
in.close();
}
else {
System.out.println("can't open socket");
}
skt.close();
} catch (Exception e) {
System.out.println("Receive1 Exception: "+e);
}
return sReturn.substring(5,21);
}
If the external device looses power supply. The TimerTask will be
killed. If eg. the network connection is lost, I got an exception and
the TimerTask is still running.
There shoulb be an exception as well if there is a power failure.
Thanks for any help
Mitschu