public void init() {
		try {
			server = new ServerSocket(port); //Creates the server at the selected port
			System.out.println("ServerSocket initialized");
			
			int character;
			
			while(true) { //Since its a server, we assume it's always ready to accept and process socket connections
				client = server.accept(); //Stops the flow of the program and waits for a client to connect
				
				socketIn = new BufferedInputStream(client.getInputStream()); //process the input stream from our socket
				socketReader = new InputStreamReader(socketIn); 
				inBuffer = new StringBuffer();
				
				while((character = socketReader.read()) != 13) {
					inBuffer.append((char) character);
				}
				
				System.out.println(inBuffer);
				
				try{
					Thread.sleep(1000); //puts the thread asleep for 10 seconds, for the purpose of demonstrating socket connections, not used in real-world app.
				} catch(Exception e){};
				
				//Returns some information back to the client
				
				Scanner input = new Scanner(System.in);
				String returnCode = "Server responded at " + new Date().toString() + (char) 13;
				socketOut = new BufferedOutputStream(client.getOutputStream());
				socketWriter = new OutputStreamWriter(socketOut);
				socketWriter.write(returnCode + " " + input.next());
				socketWriter.flush(); //if we don't do this, can't guarantee that the data will be written across the socket in a timely manner
				
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}