Hey leutz...also..das folgende Prog soll sowas wie nen Switch (virtuell) darstellen....is aber nich weiter wichtig! Ok, die Strukturierung is wohl unter aller Sau...aber ich komm einfach nicht weiter! Wenn ihr mir plz helfen könntet...thx a lot.
compilen unter JCreator ohne props (process completed)
aber bei der ausführung dann dieser fehler: java.lang.NullPointerException
Switch.java:
Port.java
und THX
compilen unter JCreator ohne props (process completed)
aber bei der ausführung dann dieser fehler: java.lang.NullPointerException
Switch.java:
Code:
import java.io.*;
import java.util.*;
import java.util.Properties.*;
public class Switch
{
private Port a, b, c, d;
private int Daten;
private int Data;
private int Port;
public static void main(String[] args)
{
Properties p1 = new Properties();
try
{
p1.load(new FileInputStream("D:\\Dominik\\schule\\Projektklausur\\Lan\\conf.txt"));
}
catch(Exception e)
{
System.out.println (e.getMessage());
System.out.println (e.toString());
}
String ba = p1.getProperty("a.buffer");
String pa = p1.getProperty("a.prob");
String porta = p1.getProperty("a.port");
String bb = p1.getProperty("b.buffer");
String pb = p1.getProperty("b.prob");
String portb = p1.getProperty("b.port");
String bc = p1.getProperty("c.buffer");
String pc = p1.getProperty("c.prob");
String portc = p1.getProperty("c.port");
String bd = p1.getProperty("d.buffer");
String pd = p1.getProperty("d.prob");
String portd = p1.getProperty("d.port");
int bufferA = Integer.parseInt(ba);
float probA = Float.parseFloat(pa);
int portA = Integer.parseInt(porta);
int bufferB = Integer.parseInt(bb);
float probB = Float.parseFloat(pb);
int portB = Integer.parseInt(portb);
int bufferC = Integer.parseInt(bc);
float probC = Float.parseFloat(pc);
int portC = Integer.parseInt(portc);
int bufferD = Integer.parseInt(bd);
float probD = Float.parseFloat(pd);
int portD = Integer.parseInt(portd);
Port a = new Port(bufferA, probA, portA);
Port b = new Port(bufferB, probB, portB);
Port c = new Port(bufferC, probC, portC);
Port d = new Port(bufferD, probD, portD);
a.start();
b.start();
c.start();
d.start();
}
public void redirect(int Data, int Port)
{
switch(Port)
{
case 1: sendDataA(Data); break;
case 2: sendDataB(Data); break;
case 3: sendDataC(Data); break;
case 4: sendDataD(Data); break;
}
}
public void sendDataA(int Daten)
{
System.out.println ("in da senddataa");
if(b.getStatus()==false) //hier hängt er weil er wohl b nicht findet..warum immer?!
{
if(c.getStatus()==false)
{
if(d.getStatus()==false)
{
b.setStatus(true);
c.setStatus(true);
d.setStatus(true);
startZyklus();
endZyklus();
}
else a.writeBuffer(Daten);
}
else a.writeBuffer(Daten);
}
else a.writeBuffer(Daten);
}
public void sendDataB(int Daten)
{
if(a.getStatus()==false)
{
if(c.getStatus()==false)
{
if(d.getStatus()==false)
{
a.setStatus(true);
c.setStatus(true);
d.setStatus(true);
startZyklus();
endZyklus();
}
else b.writeBuffer(Daten);
}
else b.writeBuffer(Daten);
}
else b.writeBuffer(Daten);
}
public void sendDataC(int Daten)
{
if(a.getStatus()==false)
{
if(b.getStatus()==false)
{
if(d.getStatus()==false)
{
a.setStatus(true);
b.setStatus(true);
d.setStatus(true);
startZyklus();
endZyklus();
}
else c.writeBuffer(Daten);
}
else c.writeBuffer(Daten);
}
else c.writeBuffer(Daten);
}
public void sendDataD(int Daten)
{
if(a.getStatus()==false)
{
if(b.getStatus()==false)
{
if(c.getStatus()==false)
{
a.setStatus(true);
b.setStatus(true);
c.setStatus(true);
startZyklus();
endZyklus();
}
else d.writeBuffer(Daten);
}
else d.writeBuffer(Daten);
}
else d.writeBuffer(Daten);
}
public void startZyklus()
{
System.out.println ("sende im Zeitschlitz!");
try{
Thread.sleep(1000);
}catch(Exception e) {System.out.println (e.getMessage());}
}
public void endZyklus()
{
a.setStatus(false);
b.setStatus(false);
c.setStatus(false);
d.setStatus(false);
}
}
Port.java
Code:
import java.io.*;
import java.util.*;
import java.util.Random.*;
public class Port
{
private int buffer, Port, bDaten;
private float probability;
private int[] buffersize;
private boolean stat=false;
private int mitzl=1;
private int ueberlauf=0;
private int Daten = 12345678; //Bsp.-Datenpaket
public Port(int buffer, float probability, int Port)
{
this.buffer=buffer;
this.probability=probability;
this.Port=Port;
int[] buffersize = new int[buffer];
}
public void start()
{
while(true)
{
String zufall = String.valueOf(java.lang.Math.random());
float random = Float.parseFloat(zufall.substring(0,4));
//System.out.println (random);
Switch sw = new Switch();
if(random==probability)
{
System.out.println ("Port " + Port + " sendet!");
sw.redirect(Daten, Port);
}
//System.out.println ("kein Treffer");
}
}
public void writeBuffer(int bDaten)
{
if(mitzl<=buffer)
{
buffersize[mitzl]=bDaten;
mitzl++;
}
else
{
mitzl=1;
buffersize[mitzl]=bDaten;
mitzl++;
ueberlauf++;
}
}
public void setStatus(boolean stat)
{
this.stat=stat;
}
public boolean getStatus()
{
return stat;
}
}
und THX