Simpel webserver i java
Hej Alle.Jeg har fået lavet en simpel webserver i java som kører på port : 6789
Webserveren fungere fint, men problemet er bare når der er blevet requestet et object, f.eks. et billede, svarer webserveren korrekt og billedet bliver vist i browseren, men herefter lukker webserveren forbindelsen, og man kan ikke requeste for flere objekter mere. Hvordan kan jeg få udviddet mit program til at gøre det!? Har prøvet at sætte while loops ind, men får fejl når jeg requester et nyt objekt.
Her er koden : ----------------------
import java.io.*;
import java.net.*;
import java.util.*;
class WebServer{
public static void main(String argv[]) throws Exception
{
string requestMessageLine;
String fileName;
ServerSocket listenSocket = new ServerSocket(6789);
Socket connectionSocket = listenSocket.accept();
BufferedReader inFromClient = new BufferedReader
(new InputStreamReader (connectionSocket.getInputStream()));
DataOutputStream outToClient = new DataOutputStream
(connectionSocket.getOutputStream());
requestMessageLine = inFromClient.readLine();
StringTokenizer tokenizedLine =
new StringTokenizer(requestMessageLine);
if (tokenizedLine.nextToken().equals("GET"))
{
fileName = tokenizedLine.nextToken();
if (fileName.startsWith("/") == true)
fileName = fileName.substring(1);
File file = new File(fileName);
int numOfBytes = (int) file.length();
FileInputStream inFile = new FileInputStream
(fileName);
byte[] fileInBytes = new byte[numOfBytes];
inFile.read(fileInBytes);
outToClient.writeBytes("HTTP/1.0 200 Document
Follows\r\n");
if (fileName.endsWith(".jpg"))
outToClient.writeBytes("Content-
Type:image/jpeg\r\n");
if (fileName.endsWith(".gif"))
outToClient.writeBytes("Content-
Type:image/gif\r\n");
outToClient.writeBytes("Content-length : " +
numOfBytes + "\r\n");
outToClient.writeBytes("\r\n");
outToClient.write(fileInBytes, 0, numOfBytes);
connectionSocket.close();
}
else System.out.println("hej");
}
}
-----------------------
Håber i kan hjælpe.. Der skal vidst en eller anden while loop et sted hen i programmet, men hvor ved jeg ik!
