Example 1: Handling Multi-clients
package socketprogrammingdemo;
import [Link].*;
import [Link].*;
import [Link];
public class MultiClientCircleAreaServer {
public static void main(String[] args) {
int port = 1234;
try (ServerSocket serverSocket = new ServerSocket(port)) {
[Link]("Server started. Waiting for clients...");
while (true) {
Socket clientSocket = [Link]();
[Link]("Client connected.");
new ClientHandler(clientSocket).start();
}
} catch (IOException e) {
[Link]();
}
}
}
class ClientHandler extends Thread {
private Socket socket;
ClientHandler(Socket socket) {
[Link] = socket;
}
public void run() {
try (
Scanner in = new Scanner([Link]());
PrintWriter out = new PrintWriter([Link](), true)
){
double radius = [Link]();
double area = [Link] * radius * radius;
[Link](area);
[Link]("Computed area for client: " + area);
} catch (IOException e) {
[Link]("Client disconnected.");
} finally {
try {
[Link]();
} catch (IOException e) {
[Link]();
}
}
}
}
package socketprogrammingdemo;
import [Link].*;
import [Link].*;
import [Link];
public class CircleAreaClientMultiClientDemo {
public static void main(String[] args) {
String host = "localhost";
int port = 1234;
try (Socket socket = new Socket(host, port)) {
Scanner userInput = new Scanner([Link]);
Scanner in = new Scanner([Link]());
PrintWriter out = new PrintWriter([Link](), true);
[Link]("Enter radius of the circle: ");
double radius = [Link]();
[Link](radius);
double area = [Link]();
[Link]("The area of the circle is: %.2f\n", area);
[Link]();
} catch (IOException e) {
[Link]();
}
}
}