1. import java.net.*;
2. import java.io.*;
3.
4. public class NFClient
5. {
6. public static void main(String args[])
7. {
8. Socket client = null;
9. BufferedReader socketReader = null;
10. BufferedReader consoleReader = null;
11. PrintStream consoleWriter = null;
12. PrintStream socketWriter = null;
13. String serverLine = null;
14. boolean bDone = false;
15. String val1 = null;
16. long val2 = 0;
17. long val3 = 0;
18.
19. long n = args.length > 0 ? Long.parseLong(args[0]) : 17;
20. long u = args.length > 1 ? Long.parseLong(args[1]) : 12;
21. long v = args.length > 2 ? Long.parseLong(args[2]) : 18;
22.
23. try
24. {
25. client = new Socket("127.0.0.1", 8313);
26.
27. socketReader = new BufferedReader(new
28. InputStreamReader(client.getInputStream()));
29. socketWriter = new PrintStream(client.getOutputStream());
30. consoleWriter = new PrintStream(client.getOutputStream());
31.
32. socketWriter.println(n + "," + u + ","
+ v);
33. consoleWriter.println(30);
34. serverLine = socketReader.readLine();
35.
36. String a = serverLine.substring(0,serverLine.indexOf(','));
37. String b = serverLine.substring(serverLine.indexOf(',')+1,
serverLine.lastIndexOf(','));
38. String c = serverLine.substring(serverLine.lastIndexOf(',')+1,
serverLine.length());
39. val1 = String.valueOf(a).toString();
40. val2 = Long.valueOf(b).longValue();
41. val3 = Long.valueOf(c).longValue();
42.
43. System.out.println( n + " is a prime: " + val1 +
44. "\nThe GCD of " + u + " and " + v + "
is " + val2 +
45. "\nThe LCM of " + u + " and " + v + "
is " + val3 );
46.
47. socketReader.close();
48. socketWriter.close();
49. consoleWriter.close();
50. client.close();
51. }
52. catch(UnknownHostException uhe)
53. {
54. System.out.println("Could not connect to host");
55. }
56. catch(IOException ioe)
57. {
58. System.out.println("I/O Exception occurred while using
the socket.");
59. }
60. }
61. }
Running the System
Open two DOS windows:
1. Compile and run Server
...\socketNFS\server>javac NFServer.java
...\socketNFS\server>java NFServer
2. Compile and run Client in separate window
...\socketNFC\client>javac NFClient.java
...\socketNFC\client>java NFClient
Default Output
Using the clients default arguments, 17, 12 and 18 produces the
following output:
17 is a prime : true
The GCD of 12 and 18 is 6
The LCM of 12 and 18 is 36
Back to Beginning