package elte.java2_utikalauz5.io; import java.io.*; /** Hálózati többszálú tesztszerver. @link.forrásfájl {@docRoot}/../data/io/src TesztSzerver.java @link.letöltés {@docRoot}/../data/io TesztSzerver.jar @since Java 2 Útikalauz programozóknak 1.3 */ public class TesztSzerver { private static class EgyKliensKiszolgálása extends Thread { private final java.net.Socket socket; private final DataInputStream in; private final DataOutputStream out; EgyKliensKiszolgálása( java.net.Socket socket ) throws IOException { this.socket = socket; in = new DataInputStream(socket.getInputStream()); out = new DataOutputStream(socket.getOutputStream()); } public void run() { try { while ( true ) { out.writeUTF( válasz(in.readUTF()) ); out.flush(); } } catch( EOFException eof ) { } catch( Throwable t ) {// nem várt kivétel log-olása t.printStackTrace(); } finally { try { socket.close(); } catch( Throwable t ){ /* nem várt kivétel log-olása */ t.printStackTrace(); } } } String válasz( String kérés ) { return new StringBuilder(kérés).reverse().toString(); } } public static void main( String[] args ) throws IOException { java.net.ServerSocket kapcsolódásiHely = new java.net.ServerSocket(9999); while ( true ) { java.net.Socket kapcsolat = null; try { kapcsolat = kapcsolódásiHely.accept(); new EgyKliensKiszolgálása(kapcsolat).start(); } catch( IOException e ) {// kivétel naplózása e.printStackTrace(); if( kapcsolat != null ) { try { kapcsolat.close(); } catch( IOException ioe ){ /* kivétel naplózása */ ioe.printStackTrace(); } } } } } }