SocketSample.java
- package org.drip.zen.grid;
- import java.io.BufferedReader;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.io.OutputStream;
- import java.io.PrintWriter;
- import java.net.ServerSocket;
- import java.net.Socket;
- /**
- * 1) Review of IP Addresses, Port Number, Ping Command, Router, Gateway/Router.
- * 2) Client/Server Run Through Song and Dance - Slow Detail.
- * 3) Server Startup - Bind to Port. Caveats.
- * 4) Client Startup, and Connection to Server.
- * 5) Server Acceptance of a Connection and ready to Process it.
- * 6) Client then sends Server a Message.
- * 7) Server reads it, sends Client a Response.
- * 8) Both Client and Server display the Message.
- * 9) Passing "Client"/"Server" Arguments into the "Main".
- * 10) Running this in a Command Line.
- *
- * @author Spooky
- */
- public class SocketSample {
- @SuppressWarnings ("resource") static void RunServer (int listenerPort)
- throws Exception
- {
- ServerSocket mySocketListener = new ServerSocket (listenerPort);
- System.out.println ("[Server] => The Server is listening on port " + listenerPort);
- Socket s = mySocketListener.accept();
- System.out.println ("[Server] => Received a Connection from Client " + s);
- while (true) {
- InputStream inputStream = s.getInputStream();
- InputStreamReader inputReader = new InputStreamReader (inputStream);
- BufferedReader bufferedReader = new BufferedReader (inputReader);
- java.lang.String request = bufferedReader.readLine();
- System.out.println ("[" + s.toString() + "] => " + request);
- OutputStream outputStream = s.getOutputStream();
- PrintWriter pw = new PrintWriter (outputStream, true);
- String response = System.console().readLine();
- pw.write (response + "\n");
- pw.flush();
- }
- }
- @SuppressWarnings ("resource") static void RunClient (String serverAddress, int serverPort)
- throws Exception
- {
- Socket clientSocket = new Socket (serverAddress, serverPort);
- System.out.println ("[Client] => The Client connected to " + serverAddress + "/" + serverPort);
- boolean listenForMessages = true;
- while (listenForMessages) {
- OutputStream outputStream = clientSocket.getOutputStream();
- String message = System.console().readLine();
- PrintWriter pw = new PrintWriter (outputStream, true);
- pw.write (message + "\n");
- pw.flush();
- InputStream inputStream = clientSocket.getInputStream();
- InputStreamReader inputReader = new InputStreamReader (inputStream);
- BufferedReader bufferedReader = new BufferedReader (inputReader);
- java.lang.String response = bufferedReader.readLine();
- System.out.println ("[" + serverAddress + ":" + serverPort + "] => " + response);
- if (response.equalsIgnoreCase ("bye") || response.equalsIgnoreCase ("quit"))
- listenForMessages = false;
- }
- }
- public static final void main (String[] inputArray)
- throws Exception
- {
- String server = "127.0.0.1";
- int listenerPort = 9090;
- String command = inputArray[0];
- if (command.equalsIgnoreCase ("SERVER"))
- RunServer (listenerPort);
- if (command.equalsIgnoreCase ("CLIENT"))
- RunClient (server, listenerPort);
- }
- }