Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.net.*;
- import java.io.*;
- public class Server {
- private int port;
- private Socket socket = null;
- private BufferedReader in = null;
- private ServerSocket serverSocket = null;
- private PrintWriter out = null;
- private boolean listening = true;
- private String guessFile = "\n<html>\n<head><title>Number Guess Game</title>\n\n\n</head>\n\n<body>\n\n\nNope, guess a number between 53 and 100 <br>You have made 2 guesses<br> <form name=\"guessform\" method=\"POST\">\n<input type=text name=guess>\n<input type=submit value=\"Guess\">\n</form> \n </body></html>";
- public Server(int port) {
- this.port = port;
- }
- public void run() throws IOException {
- try {
- serverSocket = new ServerSocket(this.port);
- } catch (IOException e) {
- System.err.println("Could not listen on port: " + this.port);
- System.exit(1);
- }
- System.out.println("Listening on port: " + this.port);
- String pageRequest = "", POSTorGET = "";
- while (listening) {
- try {
- socket = serverSocket.accept();
- out = new PrintWriter(socket.getOutputStream(), true);
- in = new BufferedReader(
- new InputStreamReader(socket.getInputStream())
- );
- int emptyLineCount = 0;
- boolean post = false;
- String line;
- while(!in.ready()) {}
- line = in.readLine(); // Read input
- POSTorGET = line.split(" ")[0];
- pageRequest = line.split(" ")[1]; //could be a request for a page (ex. guess.html)
- // New user, or same user refreshing the page
- if(POSTorGET.equals("GET") && pageRequest.equals("/guess.html")) {
- out.println(getHTTPResponse(guessFile));
- } else if (POSTorGET.equals("POST") && pageRequest.equals("/guess.html")) {
- post = true;
- }
- System.out.println(line); // Log
- while (in.ready()) {
- line = in.readLine(); // Read input
- if (line.equals("")) {
- if (post && emptyLineCount == 1) {break;}
- else if (post) {emptyLineCount++; continue;}
- else {break;}
- };
- System.out.println(line); // Log
- }
- }catch (IOException e){
- e.printStackTrace();
- } finally {
- out.close();
- in.close();
- socket.close();
- }
- }
- serverSocket.close();
- }
- private String getHTTPResponse(String data) {
- return "HTTP/1.1 200 OK\nServer: Lab1\nContent-Type: text/html\n\n"+data;
- }
- public static void main(String[] args) throws IOException {
- Server s = new Server(8989);
- s.run();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement