# Port 13 nur einmal abfragbar?



## K-Man (31. Mrz 2006)

Hallo
Ich habe ein Testprogramm geschrieben, welches über den Port 13 die Uhrzeit fragt.
Wenn ich aber den InputStream nochmal nach der Uhrzeit frage, dann gibt er mir nur "null"
Kann es sein, dass der Socket nur einmal vom Uhrzeitdienst beschrieben wird? Muss ich den Stream schließen und dann wieder öffnen, damit ich die Uhrzeit öfters abfragen kann. Wenn ja, wie kann man den Stream am einfachsten wieder offnen? Mit close kann ich ihn schließen. Muss ich den Stream komplett neu erzeugen?

Hier mein Code für die Abfrage:


```
Socket socket = null;
		try
		{
			socket = new Socket(computer, port);

			InputStream is = socket.getInputStream();

			BufferedReader reader = new BufferedReader(new InputStreamReader(is));
			
			while(true)
			{
				System.out.println(reader.readLine());
				
				try
				{
					Thread.sleep(1000);
				}
				catch (InterruptedException e)
				{
					e.printStackTrace();
				}
			}
		}
		catch (UnknownHostException e)
		{
			e.printStackTrace();
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
		finally
		{
			try
			{
				socket.close();
			}
			catch (IOException e)
			{
			}
		}
	}
```


----------



## The_S (31. Mrz 2006)

Hi,

ich kann dir zwar nicht sagen wie oft der Uhrzeitdienst beschrieben wird, aber vom Prinzip her müsste dein Code korrekt sein. Schonmal alleine deswegen, weil du sonst nicht null ausgegeben bekommen würdest. Sendet der Server keine Signale mehr blockiert deine Anwendung. Von daher dürfte es also gehen. (Wobei, hat ja eigentlich nix wirklich mit Java-Server zu tun ... kA muss ich nochma drüber nachdenken ...).

wenn du deinen BufferedReader closed, closed du deinen kompletten Socket => brauchst also nen neuen Socket.


----------



## K-Man (3. Apr 2006)

Danke schon mal.
Zumindest weiß ich jetzt schon mal, dass ich nach dem close einen neuen Socket/Stream brauche.

Das mit der Zeit scheint echt so zu sein, dass die Pipe nur einmal mit der aktuellen Zeit gefüttert wird...


----------

