Commit 82f5e5e6 authored by Trisha Gee's avatar Trisha Gee
Browse files

[Ch15] Updating server to use serversocketchannel

parent cd86e5fd
Loading
Loading
Loading
Loading
+15 −5
Changes for src/main/java/ch15/DailyAdviceServer.java: 15 added lines, 5 removed lines.
Original line number Diff line number Diff line
@@ -2,8 +2,12 @@ package ch15;

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

public class DailyAdviceServer {

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

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

      while (true) {
        Socket sock = serverSock.accept();
        SocketChannel socketChannel = serverSocketChannel.accept();

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

        socketChannel.write(buffer);

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