# auf http-request antworten.



## Gast v2.0 (26. Aug 2008)

hi 

ich will einen einfachen text im browser des clients anzeigen lassen.
warum funktioniert folgender code nicht?


```
import java.net.*;
import java.io.*;


public class ServerTest {
	
	public static void main(String[] args) {
		try {
			ServerSocket servSocket = new ServerSocket(80);
			Socket socket = servSocket.accept();
			InputStream in = socket.getInputStream();
			PrintWriter out = new PrintWriter(socket.getOutputStream());
			int len;
			while ((len = in.read()) != -1) {
				System.out.print((char)len);
			}
			out.write("HTTP/1.1 200 OK\r\n");
			out.write("Content-type: text/html\r\n\r\n");
			out.write("<html>");
			out.write("<head>");
			out.write("<title>OinkBoink</title>");
			out.write("</head>");
			out.write("<body>");
			out.write("<h1>OinkBoink Bummsfallara</h1>");
			out.write("</body>");
			out.write("</html>");
		
		} catch (IOException e) {
			System.out.println(e);
		}
	}
}
```


----------



## musiKk (26. Aug 2008)

out.flush()?


----------



## Gast v2.0 (26. Aug 2008)

danke, mit flush(), schliessen der streams gehts und auskommentieren der schleife gehts...
trotzdem noch fragen dazu:

1. warum wird der text nur nach auskommentieren der schleife angezeigt?

2. wenn man nur flushed und die streams aber nicht schliesst wird nur kurz der text
angezeigt und dann die verbindung unterbrochen, wieso?




```
import java.net.*;
import java.io.*;


public class ServerTest {
	
	public static void main(String[] args) {
		try {
			ServerSocket servSocket = new ServerSocket(80);
			Socket socket = servSocket.accept();
			InputStream in = socket.getInputStream();
			PrintWriter out = new PrintWriter(socket.getOutputStream());
			int len;
	                //while ((len = in.read()) != -1) {
			//	System.out.print((char)len);
			//}
			out.write("HTTP/1.1 200 OK\r\n");
			out.write("Content-type: text/html\r\n\r\n");
			out.write("<html>");
			out.write("<head>");
			out.write("<title>OinkBoink</title>");
			out.write("</head>");
			out.write("<body>");
			out.write("<h1>OinkBoink Bummsfallara</h1>");
			out.write("</body>");
			out.write("</html>");
		
			out.flush();
			in.close();
			out.close();
		} catch (IOException e) {
			System.out.println(e);
		}
	}
}
```


----------



## HoaX (27. Aug 2008)

weil read erst -1 zurückgibt wenn die verbindung geschlossen ist und das willst du ja nicht.
du willst lesen bis eine leerzeile kommt...rfc gelesen?


----------

