# Nacheinander Verbindungen eingehen



## joergh (15. Okt 2007)

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



```
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ß


----------



## SlaterB (15. Okt 2007)

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 ?


----------



## tuxedo (15. Okt 2007)

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


----------

