-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMathClientUDP.java
More file actions
59 lines (49 loc) · 2.44 KB
/
MathClientUDP.java
File metadata and controls
59 lines (49 loc) · 2.44 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
import java.net.*;
import java.io.*;
import java.util.Scanner;
class MathClientUDP {
public static void main(String[] args) throws Exception {
DatagramSocket clientSocket = new DatagramSocket();
InetAddress serverAddress = InetAddress.getByName("localhost");
Scanner scanner = new Scanner(System.in);
byte[] sendBuffer;
byte[] receiveBuffer = new byte[1024];
while (true) {
// Display menu
System.out.println("Select 1 to add, 2 to subtract, 3 to multiply, 4 to exit.");
System.out.print("Enter choice: ");
String choice = scanner.nextLine();
// Send choice to server
sendBuffer = choice.getBytes();
DatagramPacket sendPacket = new DatagramPacket(sendBuffer, sendBuffer.length, serverAddress, 6789);
clientSocket.send(sendPacket);
// Exit condition
if (choice.equals("4")) {
DatagramPacket receivePacket = new DatagramPacket(receiveBuffer, receiveBuffer.length);
clientSocket.receive(receivePacket);
String goodbyeMessage = new String(receivePacket.getData(), 0, receivePacket.getLength());
System.out.println("Server: " + goodbyeMessage);
break;
}
// Receive prompt for operands
DatagramPacket receivePacket = new DatagramPacket(receiveBuffer, receiveBuffer.length);
clientSocket.receive(receivePacket);
String prompt = new String(receivePacket.getData(), 0, receivePacket.getLength());
System.out.println("Server: " + prompt);
// Get operands from user
System.out.print("Enter operands (separated by space): ");
String operands = scanner.nextLine();
// Send operands to server
sendBuffer = operands.getBytes();
sendPacket = new DatagramPacket(sendBuffer, sendBuffer.length, serverAddress, 6789);
clientSocket.send(sendPacket);
// Receive result from server
receivePacket = new DatagramPacket(receiveBuffer, receiveBuffer.length);
clientSocket.receive(receivePacket);
String result = new String(receivePacket.getData(), 0, receivePacket.getLength());
System.out.println("Server: " + result);
}
clientSocket.close();
scanner.close();
}
}