PointHandler.Java
package mainframe;
import java.net.*;
import java.io.*;
class PointHandler implements Runnable {
private Thread t;
private Socket socket;
private DataInputStream dis;
private DataOutputStream dos;
private double x;
private double y;
private double R;
private boolean answer;
PointHandler(Socket s) {
t = new Thread(this);
socket = s;
t.start();
}
public void run() {
try {
dis = new DataInputStream(socket.getInputStream());
dos = new DataOutputStream(socket.getOutputStream());
x = dis.readDouble();
y = dis.readDouble();
R = dis.readDouble();
if ((x>=0 && y>=0 && x<=R && y<=R/2) ||
(x<=0 && y>=0 && ((x*x + y*y) <= R*R/4)) ||
(x<=0 && y<=0 && y>=(-x-R))) {
answer = true;
} else {
answer = false;
}
dos.writeBoolean(answer);
dis.close();
dos.close();
socket.close();
} catch (IOException e) {
System.out.println("Unable to read/write data!");
return;
}
}
}
Server.Java
package mainframe;
import java.io.*;
public class Server {
private static final int DEFAULT_PORT = 7070;
public static void main(String args[]) {
int port = DEFAULT_PORT;
boolean exitFlag = false;
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
if (args.length > 0) {
try {
port = Integer.parseInt(args[0]);
} catch (NumberFormatException e) {
System.out.println("Illegal port! The port was set by default!");
}
}
ServerReceiver sr = new ServerReceiver(port);
do {
System.out.println("Enter the \"exit\" command close the application:");
try {
if (input.readLine().equalsIgnoreCase("exit")) {
exitFlag = true;
}
} catch (IOException e) {
System.out.println("Application will be closed!");
sr.stop();
return;
}
} while (!exitFlag);
sr.stop();
}
}
ServerReceiver.Java
package mainframe;
import java.net.*;
import java.io.*;
class ServerReceiver implements Runnable{
private Thread t;
private int port;
private ServerSocket serverSocket;
private boolean running = true;
private Socket clientSocket;
ServerReceiver(int p) {
t = new Thread(this);
port = p;
try {
serverSocket = new ServerSocket(port);
serverSocket.setSoTimeout(500);
} catch (IOException e) {
System.out.println("Socket was not created!");
System.exit(-1);
}
t.start();
}
public void run() {
while (running) {
try {
new PointHandler(serverSocket.accept());
} catch (IOException e) {}
}
try {
serverSocket.close();
} catch (IOException e) {}
}
public void stop() {
running = false;
}
}