[Java lista] Socket broken
zamek
zamek at vili.pmmf.hu
2008. Júl. 6., V, 17:20:17 CEST
Hello,
Szetguglizom magam es nem talalok hasznalhato megoldast! :(
Van egy tcp socket kliens-em, aminek detektalnia kellene, ha megszakad a
kapcsolat. Egyszeruen nem talalok mukodo megoldast.
Egyebkent rendesen mukodik, csak a szakadast nem veszi eszre.
Amit probaltam:
1. Thread+NioSocket.
inicializalaskor beallitotm a timeout-ot.
private void readIncomingMessages() throws IOException,
CharacterCodingException {
// check for incoming mesgs
// non-blocking select, returns immediately regardless of how many
keys are ready
readSelector.selectNow();
// fetch the keys
Set readyKeys = readSelector.selectedKeys();
// run through the keys and process
Iterator i = readyKeys.iterator();
while (i.hasNext()) {
SelectionKey key = (SelectionKey) i.next();
i.remove();
channel = (SocketChannel) key.channel();
readBuffer.clear();
// read from the channel into our buffer
long nbytes = channel.read(readBuffer);
// use a CharsetDecoder to turn those bytes into a string
// and append to our StringBuffer
readBuffer.flip();
StringTokenizer st = new StringTokenizer(
asciiDecoder.decode(readBuffer).toString(), "\n\r");
while (st.hasMoreElements()) {
processIncomingMessage(st.nextToken());
}
readBuffer.clear();
}
}
A while-ba be sem megy, nincs exception.
2. Apache Mina. Eszre sem veszi, ha megszakad a kapcsolat, nincs exception. A
doksija irja, hogy nem konnyu eszrevenni, nezzem meg a Quarz forrasat.
Nem tudom elhinni, hogy ez egy ilyen oriasi problema! Vagy csak en benazok?
--
koszi,
----------------------------------
Zoltan Zidarics programmer
PTE-PMMFK H-7621 Pecs, Boszorkany u. 2. Hungary
E-Mail: zamek at vili.pmmf.hu
----------------------------------
További információk a(z) Javalist levelezőlistáról