-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMC.java
More file actions
69 lines (56 loc) · 2.66 KB
/
Copy pathMC.java
File metadata and controls
69 lines (56 loc) · 2.66 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner;
class MC {
public static void main(String argv[]) throws Exception {
DatagramSocket clientSocket = new DatagramSocket();
InetAddress serverAddress = InetAddress.getByName("localhost");
Scanner scanner = new Scanner(System.in);
byte[] receiveBuffer = new byte[1024];
byte[] sendBuffer;
DatagramPacket sendPacket;
DatagramPacket receivePacket;
while (true) {
// Read menu from server
System.out.println("Reading from server...");
receivePacket = new DatagramPacket(receiveBuffer, receiveBuffer.length);
clientSocket.receive(receivePacket);
String menu = new String(receivePacket.getData(), 0, receivePacket.getLength());
System.out.println(menu);
// Get user choice
System.out.print("Enter choice: ");
String choice = scanner.nextLine();
System.out.println("Writing to socket...");
sendBuffer=choice.getBytes();
sendPacket = new DatagramPacket(sendBuffer, sendBuffer.length, serverAddress, 6789);
clientSocket.send(sendPacket);
// Exit condition
if (choice.equals("4")) {
System.out.println("Exiting client...");
break;
}
// Read server response for operands
System.out.println("Reading from server...");
receivePacket = new DatagramPacket(receiveBuffer, receiveBuffer.length);
clientSocket.receive(receivePacket);
String prompt = new String(receivePacket.getData(), 0, receivePacket.getLength());
System.out.println(prompt);
// Get operands
//System.out.print("Enter operands (separated by space): ");
String operands = scanner.nextLine();
System.out.println("Writing to socket...");
sendBuffer=operands.getBytes();
sendPacket = new DatagramPacket(sendBuffer, sendBuffer.length, serverAddress, 6789);
clientSocket.send(sendPacket);
// Read result from server
System.out.println("Reading from server...");
receivePacket = new DatagramPacket(receiveBuffer, receiveBuffer.length);
clientSocket.receive(receivePacket);
String result = new String(receivePacket.getData(), 0, receivePacket.getLength());
System.out.println(result);
}
clientSocket.close();
scanner.close();
}
}