Moinsen,
erstmal vorweg, meine Java Kenntnisse sind nach dem Studium etwas eingestaubt
Ich möchte gern auf meinem Server 2 Ports öffnen, und das was auf der einen Seite reinkommt, auf der anderen Seite wieder ausgeben.
Aktuell sieht mein Code folgendermassen aus:
Ich starte dann zu Testzwecken 2 Telnet sessions.
Das Einlesen und Ausgeben am selben Port funktioniert einwandfrei. Nur sobald ich es an der partner Seite ausgeben will bekomme ich in Zeile 52 eine Nullpointer Exception.
Wie bekomme ich meinen partner richtig initialisiert?
poschdi
erstmal vorweg, meine Java Kenntnisse sind nach dem Studium etwas eingestaubt
Ich möchte gern auf meinem Server 2 Ports öffnen, und das was auf der einen Seite reinkommt, auf der anderen Seite wieder ausgeben.
Aktuell sieht mein Code folgendermassen aus:
Code:
//Die Main Klasse, wo 2 Threads gestartet werden
public class Rondevuserver
{
public final static int DEFAULT_PORT1 = 5000;
public final static int DEFAULT_PORT2 = 5001;
public static Teilnehmer t1;
public static Teilnehmer t2;
public static void main(String[] args)
{
t1 = new Teilnehmer(DEFAULT_PORT1,t2);
t2 = new Teilnehmer(DEFAULT_PORT2,t1);
t1.start();
t2.start();
}
}
public class Teilnehmer extends Thread
{
private int port;
private Socket connection;
private Teilnehmer partner;
Teilnehmer(int newPort,Teilnehmer newPartner)
{
this.port= newPort;
this.partner = newPartner;
}
public void run()
{
try
{
ServerSocket server = new ServerSocket(port);
Socket connection = null;
System.out.println("Thread: Teilnehmer(" + port + ") geladen");
while (true)
{
try
{
connection = server.accept();
while (connection!= null)
{
String in = new String();
BufferedReader networkIn = new BufferedReader(new InputStreamReader(connection.getInputStream()));
in = networkIn.readLine();
System.out.println(port + " " + in);
OutputStreamWriter out = new OutputStreamWriter(partner.connection.getOutputStream());
out.write(in +"\r\n");
out.flush();
if (in.equals("."))
{
connection.close();
}
}
}
catch (IOException e) {}
finally
{
try
{
if (connection!= null)
connection.close();
}
catch (IOException e) {}
}
}
}
catch (IOException e)
{
System.err.println(e);
}
}
}
Ich starte dann zu Testzwecken 2 Telnet sessions.
Das Einlesen und Ausgeben am selben Port funktioniert einwandfrei. Nur sobald ich es an der partner Seite ausgeben will bekomme ich in Zeile 52 eine Nullpointer Exception.
Code:
OutputStreamWriter out = new OutputStreamWriter(partner.connection.getOutputStream());
Wie bekomme ich meinen partner richtig initialisiert?
poschdi