title: Where do I put this argument and how do I run this program?
body: <p>I'm trying to run this java client-server program from oracle socket programming example: <a href="https://i.stack.imgur.com/2NEAX.png" rel="nofollow noreferrer">http://docs.oracle.com/javase/tutorial/networking/sockets/clientServer.html</a></p>
  
  <p>-in netbeans but I don't understand how to run it. I have these three classes organised in two project(see picture). Client and Server project. </p>
  
  <p>I'm supposed to start the server program first and Specify as a command-line argument the port number on which the server program listens:</p>
  
  <blockquote>
    <p>java KnockKnockServer 4444</p>
  </blockquote>
  
  <p>I put this arguments in the Run section(see picture) of the project properties and runs it. </p>
  
  <p>But gets the message </p>
  
  <blockquote>
    <p>run: Usage: java EchoServer  Java Result: 1 BUILD
    SUCCESSFUL (total time: 0 seconds)</p>
  </blockquote>
  
  <p>The client side:</p>
  
  <pre><code>import java.io.*;
  import java.net.*;
  
  public class KnockKnockClient {
      public static void main(String[] args) throws IOException {
  
          if (args.length != 2) {
              System.err.println(
                  "Usage: java EchoClient &lt;host name&gt; &lt;port number&gt;");
              System.exit(1);
          }
  
          String hostName = args[0];
          int portNumber = Integer.parseInt(args[1]);
  
          try (
              Socket kkSocket = new Socket(hostName, portNumber);
              PrintWriter out = new PrintWriter(kkSocket.getOutputStream(), true);
              BufferedReader in = new BufferedReader(
                  new InputStreamReader(kkSocket.getInputStream()));
          ) {
              BufferedReader stdIn =
                  new BufferedReader(new InputStreamReader(System.in));
              String fromServer;
              String fromUser;
  
              while ((fromServer = in.readLine()) != null) {
                  System.out.println("Server: " + fromServer);
                  if (fromServer.equals("Bye."))
                      break;
  
                  fromUser = stdIn.readLine();
                  if (fromUser != null) {
                      System.out.println("Client: " + fromUser);
                      out.println(fromUser);
                  }
              }
          } catch (UnknownHostException e) {
              System.err.println("Don't know about host " + hostName);
              System.exit(1);
          } catch (IOException e) {
              System.err.println("Couldn't get I/O for the connection to " +
                  hostName);
              System.exit(1);
          }
      }
  }
  </code></pre>
  
  <p>Server:</p>
  
  <pre><code>import java.net.*;
  import java.io.*;
  
  public class KnockKnockServer {
      public static void main(String[] args) throws IOException {
  
          if (args.length != 1) {
              System.err.println("Usage: java EchoServer &lt;port number&gt;");
              System.exit(1);
          }
  
          int portNumber = Integer.parseInt(args[0]);
  
          try ( 
              ServerSocket serverSocket = new ServerSocket(portNumber);
              Socket clientSocket = serverSocket.accept();
              PrintWriter out =
                  new PrintWriter(clientSocket.getOutputStream(), true);
              BufferedReader in = new BufferedReader(
                  new InputStreamReader(clientSocket.getInputStream()));
          ) {
  
              String inputLine, outputLine;
  
              // Initiate conversation with client
              KnockKnockProtocol kkp = new KnockKnockProtocol();
              outputLine = kkp.processInput(null);
              out.println(outputLine);
  
              while ((inputLine = in.readLine()) != null) {
                  outputLine = kkp.processInput(inputLine);
                  out.println(outputLine);
                  if (outputLine.equals("Bye."))
                      break;
              }
          } catch (IOException e) {
              System.out.println("Exception caught when trying to listen on port "
                  + portNumber + " or listening for a connection");
              System.out.println(e.getMessage());
          }
      }
  }
  </code></pre>
  
  <p>KnockKnockProtocol serves up the jokes. It keeps track of the current joke, the current state (sent knock knock, sent clue, and so on), and returns the various text pieces of the joke depending on the current state.</p>
  
  <pre><code>import java.net.*;
  import java.io.*;
  
  public class KnockKnockProtocol {
      private static final int WAITING = 0;
      private static final int SENTKNOCKKNOCK = 1;
      private static final int SENTCLUE = 2;
      private static final int ANOTHER = 3;
  
      private static final int NUMJOKES = 5;
  
      private int state = WAITING;
      private int currentJoke = 0;
  
      private String[] clues = { "Turnip", "Little Old Lady", "Atch", "Who", "Who" };
      private String[] answers = { "Turnip the heat, it's cold in here!",
                                   "I didn't know you could yodel!",
                                   "Bless you!",
                                   "Is there an owl in here?",
                                   "Is there an echo in here?" };
  
      public String processInput(String theInput) {
          String theOutput = null;
  
          if (state == WAITING) {
              theOutput = "Knock! Knock!";
              state = SENTKNOCKKNOCK;
          } else if (state == SENTKNOCKKNOCK) {
              if (theInput.equalsIgnoreCase("Who's there?")) {
                  theOutput = clues[currentJoke];
                  state = SENTCLUE;
              } else {
                  theOutput = "You're supposed to say \"Who's there?\"! " +
                  "Try again. Knock! Knock!";
              }
          } else if (state == SENTCLUE) {
              if (theInput.equalsIgnoreCase(clues[currentJoke] + " who?")) {
                  theOutput = answers[currentJoke] + " Want another? (y/n)";
                  state = ANOTHER;
              } else {
                  theOutput = "You're supposed to say \"" + 
                  clues[currentJoke] + 
                  " who?\"" + 
                  "! Try again. Knock! Knock!";
                  state = SENTKNOCKKNOCK;
              }
          } else if (state == ANOTHER) {
              if (theInput.equalsIgnoreCase("y")) {
                  theOutput = "Knock! Knock!";
                  if (currentJoke == (NUMJOKES - 1))
                      currentJoke = 0;
                  else
                      currentJoke++;
                  state = SENTKNOCKKNOCK;
              } else {
                  theOutput = "Bye.";
                  state = WAITING;
              }
          }
          return theOutput;
      }
  }
  </code></pre>
  
  <p>The project folder: </p>
  
  <p><img src="https://i.stack.imgur.com/2NEAX.png" alt="enter image description here"></p>
  
  <p>The Project Properties and Run argument:</p>
  
  <p><img src="https://i.stack.imgur.com/skOJh.png" alt="enter image description here"></p>