Commit 3e83df1e authored by Trisha Gee's avatar Trisha Gee
Browse files

[Ch15] Original Daily Advice code from 2nd ed

parent bcedef7e
Loading
Loading
Loading
Loading
+29 −0
Changes for src/main/java/ch15/DailyAdviceClient.java: 29 added lines, 0 removed lines.
Original line number Diff line number Diff line
package ch15;

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

public class DailyAdviceClient {    

   public void go() {
       try {
           Socket s = new Socket("127.0.0.1", 4242);

           InputStreamReader streamReader = new InputStreamReader(s.getInputStream());
           BufferedReader reader = new BufferedReader(streamReader);

           String advice = reader.readLine();
           System.out.println("Today you should: " + advice);

           reader.close();

        } catch(IOException ex) {
           ex.printStackTrace();
        }
     }    

   public static void main(String[] args) {
       DailyAdviceClient client = new DailyAdviceClient();
       client.go();
   }        
}
 No newline at end of file
+47 −0
Changes for src/main/java/ch15/DailyAdviceServer.java: 47 added lines, 0 removed lines.
Original line number Diff line number Diff line
package ch15;

import java.io.IOException;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class DailyAdviceServer {

  String[] adviceList = {"Take smaller bites",
          "Go for the tight jeans. No they do NOT make you look fat.",
          "One word: inappropriate",
          "Just for today, be honest. Tell your boss what you *really* think",
          "You might want to rethink that haircut."};

  public void go() {

    try {
      ServerSocket serverSock = new ServerSocket(4242);


      while (true) {

        Socket sock = serverSock.accept();

        PrintWriter writer = new PrintWriter(sock.getOutputStream());
        String advice = getAdvice();
        writer.println(advice);
        writer.close();
        System.out.println(advice);
      }

    } catch (IOException ex) {
      ex.printStackTrace();
    }
  } // close go

  private String getAdvice() {
    int random = (int) (Math.random() * adviceList.length);
    return adviceList[random];
  }

  public static void main(String[] args) {
    DailyAdviceServer server = new DailyAdviceServer();
    server.go();
  }
}
 No newline at end of file