# DaytimeClient



## Guest (2. Jul 2007)

ich bin neu bei Netzwerkprogrammierung. 
um zu verstehen, wie server/client funktionieren habe ich ein programm gefunden, das nur datum von localhost zurückgibt(so weit ich verstanden habe)
Meine frage ist nun warum dieses Class nicht ganz richtig funktionert ?


```
public class DaytimeClient {
   private static final String HOSTNAME = "localhost";
   private static final int Port = 80;
   
   public DaytimeClient(){
	   BufferedReader Reader = null;
	   Socket socket = null;
	   String line = null;
	   try{
		   socket = new Socket(HOSTNAME, Port);
		   System.out.println("connection established");
		   socket.setSoTimeout(15000);
		   
		   Reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
		   while ((line = Reader.readLine()) != null)
		     {
			   System.out.println(line);
		    }
	   }
	   catch(IOException ex) {System.out.println("Error: " + ex);}
	   finally {
		   try {
			   if (Reader != null)
				   Reader.close();
			   if (socket != null)
				   socket.close();
		   }catch (IOException ex) {}
	   }
   }
   
   public static void main(String args[]) {
	  new DaytimeClient();
   }
}
```

Conntection klapt's aber gibt es kein Datum zurück...

die Ausgabe von Konsole ist : 

connection established
Error: java.net.SocketTimeoutException: Read timed out

danke für die Antworten...


 :applaus:


----------



## SlaterB (2. Jul 2007)

hmm, fehlt da nicht noch der Server dazu?
wenn die Connection established wird scheint ja einer dazu sein
(bei mir: Error: java.net.ConnectException: Connection refused: connect), 
macht der auch was?


----------



## madboy (2. Jul 2007)

Daytime findet sich normalerweise auf Port 13. Du connectest allerdings zu Port 80. Da läuft im Normalfall HTTP (Webserver) drüber. 
Gib mal bei HOSTNAME "www.google.com" oder "http://www.google.com" oder sowas an. Dann solltest was zurück bekommen. Das wird dann kein Datum sein, sondern die google.com Seite :wink:


----------



## Guest (2. Jul 2007)

mit dem port 13 habe ich probiert. Dies geht auch nicht...
ich wollte mit meinem localhost ausprobieren (mit google kalpt's auch nicht).
 :idea:


----------



## Guest (2. Jul 2007)

SlaterB hat gesagt.:
			
		

> hmm, fehlt da nicht noch der Server dazu?
> wenn die Connection established wird scheint ja einer dazu sein
> (bei mir: Error: java.net.ConnectException: Connection refused: connect),
> macht der auch was?



dies kommt vor, wenn irgendwie anderes port eingebe als 80(localhost)...


----------



## stev.glasow (2. Jul 2007)

zu google klappt das nicht weil der google server auf nen request wartet und du ihm nix sendest - das gleiche wird bei localhost:80 sein.
läuft bei dir überhaupt nen daytime server? wenn nein, ist die aktion für die katz. wenn ja, auf welchem port? wenn der auf port 80 läuft zeig mal den code wenn nicht nimm mal den richtigen port.


----------



## Guest (2. Jul 2007)

```
public class DaytimeServer {
   private static final int Port = 13;
   public DaytimeServer()  {
	   try
	   {
		  ServerSocket server= new ServerSocket(Port);
		  while (true)
		  {
			Socket client = server.accept();
			PrintWriter pr = new PrintWriter(client.getOutputStream());
			Date date = new Date();
			pr.println("date:" + date);
			pr.println("goodbye");
			pr.flush();
			pr.close();
			client.close();
		  }  
	   }
	   catch(BindException bi) 
	   {
		   
	   }
	   catch(IOException bi) 
	   {
		   
	   }
   }
   public static void main(String args[])
   {
	   new DaytimeServer();
   }
}
```


```
public class DaytimeClient {
   private static final String HOSTNAME = "localhost";
   private static final int Port = 13;
   
   public DaytimeClient(){
	   BufferedReader Reader = null;
	   Socket socket = null;
	   String line = null;
	   try{
		   socket = new Socket(HOSTNAME, Port);
		   System.out.println("connection established");
		   socket.setSoTimeout(15000);
		   
		   Reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
		   while ((line = Reader.readLine()) != null)
		    {
			   System.out.println(line);
		    }
	   }
	   catch(IOException ex) {System.out.println("Error: " + ex);}
	   finally {
		   try {
			   if (Reader != null)
				   Reader.close();
			   if (socket != null)
				   socket.close();
		   }catch (IOException ex) {}
	   }
   }
   
   public static void main(String args[]) {
	  new DaytimeClient();
   }
}
```


----------



## stev.glasow (2. Jul 2007)

der code ist soweit richtig und läuft auch:
Hab folgende Ausgabe bekommen:
connection established
date:Mon Jul 02 04:03:13 CEST 2007
goodbye

Kann dir jetzt nur den professionellen tipp geben den server auch zu starten - sonst weiß ich auch nicht.


----------



## Guest (2. Jul 2007)

das muss ich nochmal probieren kann sein dass ich diese fehler gemacht habe...
aber danke für die Antworten... :roll:


----------

