S
Selectah
Gast
Hallo allerseits!
Ist es nicht möglich mehrere Vectors in einer Klasse zu brauchen? Falls ja, ist es möglich ein beliebiges Objekt in zwei verschiedene Vector hinzuzufügen? (mit addElement)
Er wirft bei mir immer eine java.lang.NullPointerException... :cry:
Danke schon im Voraus für Hilfe.....
:toll:
Ist es nicht möglich mehrere Vectors in einer Klasse zu brauchen? Falls ja, ist es möglich ein beliebiges Objekt in zwei verschiedene Vector hinzuzufügen? (mit addElement)
Er wirft bei mir immer eine java.lang.NullPointerException... :cry:
Danke schon im Voraus für Hilfe.....
Code:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Vector;
/**
* @author Du
*
*
* Window - Preferences - Java - Code Style - Code Templates
*/
public class CAp1Server extends Thread{
private static final int BUFFER_SIZE = 2;
private int br_telegramId = 0;
private ServerSocket ss = null;
private Socket client_Anfrage = null;
private static int portNummer = 2001; // Standartport = 2001
private String job = ""; // Auftrag von Client
private Vector befehlsBuffer = null;
private Vector warteliste = null;
private BufferedReader in;
// Konstanten (Spezielle ASCII Zeichen)
private static final char SOH = (char)1;
private static final char STX = (char)2;
private static final char ETX = (char)3;
private static final char EOT = (char)4;
private static final char LF = (char)10;
private static final char CR = (char)13;
private static final char RS = (char)30;
public static void main (String[] args) throws IOException {
if (args.length > 0){
portNummer = Integer.parseInt(args[0]);
}
CAp1Server server = new CAp1Server();
}
public CAp1Server(){
try {
ss = new ServerSocket (portNummer);
wln ("[server running @ port: " + portNummer + "]");
client_Anfrage = ss.accept(); // Auf Client-Anfragen warten:
warteliste = new Vector ( 10 );
kommuniziere();
} catch (Exception e) { // Ein Fehler ist aufgetreten:
wln ("Fehler: " + e);
}
}
private void kommuniziere (){
wln ("client has connected");
try {
// Streams initialisieren:
InputStream input = client_Anfrage.getInputStream();
in = new BufferedReader (
new InputStreamReader (input));
// -------------------------------------------------------------------
while(true){
jobEinlesen();
wln ("");
wln("incoming job");
CWork work1 = new CWork(this, client_Anfrage, job);
if (warteliste.size() <= BUFFER_SIZE){
if ( warteliste.isEmpty() ){
befehlsBuffer.addElement(work1);
warteliste.addElement(work1);
wln("proceed...");
work1.start();
}
else{
warteliste.addElement( work1 );
wln("server not ready! write to buffer...");
}
}
else{
wln("server busy");
work1.busy();
}
}
// -------------------------------------------------------------------
} catch (IOException e) {
wln ( "Fehler@kommuniziere: " + e.toString() );
}
}
private void jobEinlesen (){
try {
job = ""; // auf null setzen
// Einlesen von Job
char c = 0;
do {
c = (char)in.read();
job = job + c;
}while(c!=EOT);
} catch (IOException e) {
wln ( "Fehler@jobEinlesen: " + e.toString() );
}
}
protected void bin_fertig(){
CWork work2;
warteliste.remove( 0 );
if ( !warteliste.isEmpty() ){
wln("server ready! read from buffer...");
wln("proceed...");
work2 = (CWork) warteliste.get( 0 );
work2.start();
}
}
protected void wln (String s) {
System.out.println ( s );
}
protected void w (String s) {
System.out.print ( s );
}
}