2 Ports miteinander verbinden

Status
Nicht offen für weitere Antworten.

poschdi

Mitglied
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:
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
 

Bleiglanz

Gesperrter Benutzer
die eine Seite ist ein serversocket, klar, die liest

aber die andere? wohin soll die denn ausgeben??

t1 = new Teilnehmer(DEFAULT_PORT1,t2); // hier ist t2 NULL
t2 = new Teilnehmer(DEFAULT_PORT2,t1);
 

Bleiglanz

Gesperrter Benutzer
mit einem setter für den jeweils anderen

erste beide mit new erzeugen

dann mit einem setPatner(..) den jeweils anderen injizieren
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Von Java auf passwortgeschützten Server zugreifen + Umgang mit Ports Netzwerkprogrammierung 28
U Socket Abhören eines Sockets/Ports in extra Thread Netzwerkprogrammierung 8
M Ping mehrerer Ports aus int[] ohne for-Schleifendurchlauf Netzwerkprogrammierung 11
G Kann Java Ports sperren? Netzwerkprogrammierung 3
M Offene UDP-Ports finden Netzwerkprogrammierung 6
M Mehrere Ports gleichzeitig abhören Netzwerkprogrammierung 5
G freie ports ermitteln? Netzwerkprogrammierung 3
S RMI: Ports freigeben Netzwerkprogrammierung 6
8 Wie kommuniziere ich mit Standard-Ports? Netzwerkprogrammierung 4
A server mit 2 Ports : Mit und ohne SSL Chat system Netzwerkprogrammierung 10
E Zwei PCs über das Internet miteinander verbinden? Netzwerkprogrammierung 3
L TCP und UDP verbinden? Netzwerkprogrammierung 5
W Wifi verbinden durch SharensPreferens Android Studio Netzwerkprogrammierung 0
W Verbinden mit Wifi Manager Netzwerkprogrammierung 1
B HTML mit Webserver und Datenbank verbinden Netzwerkprogrammierung 2
M E-Mail - Verbinden zu web.de Netzwerkprogrammierung 8
K Webserver mit Ethernet-Device verbinden Netzwerkprogrammierung 0
1 Via Java mit WLAN Netzwerken verbinden Netzwerkprogrammierung 5
T Server und Client verbinden nicht Netzwerkprogrammierung 6
A Computer über Internet verbinden Netzwerkprogrammierung 12
S soap kann nicht zu 127.0.0.1:8090 unter Windows verbinden Netzwerkprogrammierung 2
D Offline App mit online MYSQL - DB verbinden Netzwerkprogrammierung 14
NoXiD Java mit HTTPS verbinden Netzwerkprogrammierung 6
W java youtube verbinden! Netzwerkprogrammierung 9
W java ueber proxy verbinden Netzwerkprogrammierung 3
G mit FTP-Server verbinden bzw. kommunizieren? Netzwerkprogrammierung 3
T Mit FTP verbinden, einen Ordner erstellen und Datei löschen Netzwerkprogrammierung 3
C Laufwerke verbinden Netzwerkprogrammierung 3

Ähnliche Java Themen


Oben