Problemas en la lectura de un socket (java.net.SocketTimeOut)

Jorge Garc?
18 de Enero del 2006
Buenos días,
Tengo una aplicación java que se comunica con un dispositivo inalámbrico a través de 2 sockets: uno de lectura y otro de escritura. El problema es que en ocasiones se genera la siguiente excepción con el socket de lectura:

java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at java.io.DataInputStream.readInt(Unknown Source)
at communication.Paquete.Read(Paquete.java:120)
at communication.SocketServer.receive(SocketServer.java:347)
at communication.SocketServer.run(SocketServer.java:129)

Tengo comprobado que la comunicación entre el servidor y el dispositivo inalámbrico se encuentra activa en todo momento, por lo que no entiendo muy bien a qué se puede deber este problema de socketTimeout.

El código de la lectura del socket es el siguiente:
.....
datain.Read(gatewaySocket.getInputStream()))
.....

public boolean Read(InputStream in) throws IOException {
boolean Result = true;
try {
DataInputStream din = new DataInputStream(in);
size = din.readInt();
if (size > 0) {
type = din.readByte();
switch (type) {
case TYPE_LOC :
.....
}
}
}
catch (IOException e) {
System.out.println(
"Reading Exception at Class Paquete: "
+ e
+ " by "
+ Thread.currentThread().getName());
e.printStackTrace();
Result = false;
}
return Result;
}