001 002 import java.io.IOException; 003 004 /** 005 * Application receives account transactions and performs the transactions. 006 * @author Heinz Kredel. 007 */ 008 public class NetzBuchungBuche { 009 010 private static int anzahl = 0; 011 private static ChannelFactory cf = null; 012 private static SocketChannel channel = null; 013 private final static String finis = "finis"; 014 015 private static KontoS [] konten; 016 private static int kmax; 017 private static int umax = 300; 018 019 020 public static void main(String[] args) throws InterruptedException { 021 022 final int kmax = 30; 023 KontoS[] konten = new KontoS[kmax]; 024 double balance = 0.0; 025 double stand; 026 027 for (int i = 0; i < kmax; i++) { 028 konten[i] = new KontoS( 5000 ); 029 stand = konten[i].zeigeGeld(); 030 balance += stand; 031 System.out.println("Kontostand i = " + i 032 + " Betrag = " + konten[i].zeigeGeld() ); 033 } 034 System.out.println("Balance " + balance); 035 036 cf = new ChannelFactory(30000); 037 038 039 while (true) { 040 041 try { 042 channel = cf.getChannel(); 043 } catch (IOException e) { 044 e.printStackTrace(); 045 return; 046 } 047 048 049 System.out.println("Starting ... "); 050 Object o = null; 051 for ( ; ; ) { 052 anzahl++; 053 // System.out.println("channel.recieve = " + anzahl ); 054 055 try { o = channel.receive(); } 056 catch (IOException e) { 057 System.err.println(e); return; } 058 catch (ClassNotFoundException e) { 059 System.err.println(e); return; } 060 061 if ( o instanceof String ) { 062 String os = (String) o; 063 if ( os.equals(finis) ) break; 064 } 065 UeberweisungS u = (UeberweisungS) o; 066 u.run(konten); 067 } 068 System.out.println("... finished " + anzahl + " records."); 069 070 balance = 0.0; 071 for (int i = 0; i < kmax; i++) { 072 stand = konten[i].zeigeGeld(); 073 balance += stand; 074 System.out.println("Kontostand i = " + i 075 + " Betrag = " + konten[i].zeigeGeld() ); 076 } 077 System.out.println("Balance " + balance); 078 079 } 080 } 081 082 }