Commit c2ede442 authored by Trisha Gee's avatar Trisha Gee
Browse files

[Ch15] Rolling back advice client/server to the 2nd ed version

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

import java.io.BufferedReader;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.SocketChannel;
import java.io.InputStreamReader;
import java.net.Socket;

public class DailyAdviceClient {

  public void go() {
    try {
      InetSocketAddress address = new InetSocketAddress("localhost", 4242);
      SocketChannel socketChannel = SocketChannel.open(address);
      Socket s = new Socket("127.0.0.1", 4242);

      ByteBuffer buffer = ByteBuffer.allocate(256);
      socketChannel.read(buffer);
      String result = new String(buffer.array()).trim();
      InputStreamReader streamReader = new InputStreamReader(s.getInputStream());
      BufferedReader reader = new BufferedReader(streamReader);

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

      reader.close();

      socketChannel.close();
    } catch(IOException ex) {
      ex.printStackTrace();
    }
+11 −17
Changes for src/main/java/ch15/DailyAdviceServer.java: 11 added lines, 17 removed lines.
Original line number Diff line number Diff line
package ch15;

import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.ServerSocketChannel;
import java.nio.channels.SocketChannel;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class DailyAdviceServer {

@@ -16,20 +15,14 @@ public class DailyAdviceServer {

  public void go() {
    try {
      ServerSocketChannel serverSocketChannel = ServerSocketChannel.open();
      InetSocketAddress address = new InetSocketAddress("localhost", 4242);
      serverSocketChannel.bind(address);

      while (serverSocketChannel.isOpen()) {
        SocketChannel socketChannel = serverSocketChannel.accept();
      ServerSocket serverSock = new ServerSocket(4242);
      while (true) {
        Socket sock = serverSock.accept();

        PrintWriter writer = new PrintWriter(sock.getOutputStream());
        String advice = getAdvice();
        byte[] message = advice.getBytes();
        ByteBuffer buffer = ByteBuffer.wrap(message);

        socketChannel.write(buffer);

        socketChannel.close();
        writer.println(advice);
        writer.close();
        System.out.println(advice);
      }

@@ -39,7 +32,8 @@ public class DailyAdviceServer {
  }

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

  public static void main(String[] args) {