Nacheinander Verbindungen eingehen

Status
Nicht offen für weitere Antworten.

joergh

Aktives Mitglied
Hallo zusammen!

Ich möchte einen Server schreiben, der eine Verbindung mit einem Client eingeht, diese auf Clientwunssch beenden und dann wieder für weitere Verbindungen zur Verfügung steht.

Bei meinem Versuch erhalte ich beim erneuten Verbinden leider die Fehlermeldung(java.net.BindException: Address already in use: JVM_Bind):


Code:
	ObjectInputStream inputStream;
	ObjectOutputStream outputStream;


protected void runServer(){
		ServerSocket server;
		Socket connection;
		
		try{

			server = new ServerSocket(1111,10);
			boolean laeuft = true;
			String message;
			while(laeuft){
				connection = server.accept();
				tf.setText("Verbindung steht");
				//get input and output streams
				outputStream = new ObjectOutputStream(connection.getOutputStream());
				outputStream.flush();
				
				inputStream = new ObjectInputStream(connection.getInputStream());
				try{
					message = (String) inputStream.readObject();
					tf.setText(message);
					string2variables(message);
				}
				catch(Exception e){}
					
				
				try{
					String sende = "irgendwas"; 
					sendData(sende);
				}
				catch(Exception e){
					
				}
				
				//ToDo
				//Warte darauf, dass das Abbruch schickt
				//Schicke Nachricht: Alles ist vorbei!
				connection = server.accept();
				
				outputStream = new ObjectOutputStream(connection.getOutputStream());
				outputStream.flush();
				
				inputStream = new ObjectInputStream(connection.getInputStream());
				
				try{
					message = (String) inputStream.readObject();
					tf.setText(message);
					if(message.equalsIgnoreCase("end")){
						sendData("Over and Out");
						setVisible(false);
					}
					
				}
				catch(Exception e){}
				
				outputStream.close();
				inputStream.close();
				server.close();
				//connection.close();
			}
		}
		catch(Exception e){
			System.out.println(e);
		}
		
		//runServer();
	}


Woarn liegt das? Was muss ich anders machen?

danke & gruß
 
die Exception dürfte nur dann kommen, wenn du 2x
server = new ServerSocket(1111,10);
ausführst

hast du einen genauen StackTrace mit der Zeile in deinem Programm, die den Fehler auslöst?

a la

Caused by: java.net.BindException: Address already in use: JVM_Bind
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:359)
at java.net.ServerSocket.bind(ServerSocket.java:319)
at java.net.ServerSocket.<init>(ServerSocket.java:185)
at java.net.ServerSocket.<init>(ServerSocket.java:97)
at ? wo in deinem Programm ?
 
SlaterB hat gesagt.:
die Exception dürfte nur dann kommen, wenn du 2x
server = new ServerSocket(1111,10);
ausführst

Oder wenn bereits ein anderer Dienst auf dem Rechner diesen Port belegt.

- Alex
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben