62,615
社区成员
发帖
与我相关
我的任务
分享
import java.io.*;
import java.net.*;
class SqrtServer {
final static int portSqrt = 1234; // any number > 1024
public static void main(String[] args) {
System.out.println("Server running...");
try {
ServerSocket servesock = new ServerSocket(portSqrt);
// for service requests on port portSqrt
while (true) {
// wait for a service request on port portSqrt
Socket socket = servesock.accept();
// start thread to service request
new Thread(new SquareRoot(socket)).start();
}
} catch (IOException e) {e.printStackTrace();}
}
}
class SquareRoot implements Runnable {
Socket socket;
SquareRoot(Socket s) {
socket = s;
}
public void run() {
try {
DataInputStream in =
new DataInputStream(socket.getInputStream());
DataOutputStream out =
new DataOutputStream(socket.getOutputStream());
int x = in.readInt(); // get number from client
// calculate square root
int i = 0;
while ((i+1)*(i+1)<= x) i++;
out.writeInt(i); // send square root
socket.close(); // close connection
} catch (IOException e) {}
}
}
import java.io.*;
import java.net.*;
class SqrtClient {
private final static int portSqrt = 1234;
public static void main(String[] args) {
int x = 0;
while (x < 10){
try {
Socket socket;
socket = new Socket(InetAddress.getLocalHost(),portSqrt);
DataInputStream in = new
DataInputStream(socket.getInputStream());
DataOutputStream out = new
DataOutputStream(socket.getOutputStream());
out.writeInt(x);
int n = in.readInt(); // wait for result from server
System.out.println("Integer square root of "+ x + " = " + n);
socket.close();
} catch (IOException e) {System.out.println(e);}
x = x + 1;
}
}
}
import java.io.*;
import java.net.*;
import java.util.Stack;
class SqrtServer {
final static int portSqrt = 1234;
final static Stack<Integer> stack = new Stack<Integer>();
// any number > 1024
public static void main(String[] args) {
System.out.println("Server running...");
try {
ServerSocket servesock = new ServerSocket(portSqrt); // for service requests on port portSqrt
while (true) { // wait for a service request on port portSqrt
Socket socket = servesock.accept(); // start thread to service request
new Thread(new SquareRoot(socket)).start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
class SquareRoot implements Runnable {
Socket socket;
SquareRoot(Socket s) {
socket = s;
}
public void run() {
try {
DataInputStream in = new DataInputStream(socket.getInputStream());
DataOutputStream out = new DataOutputStream(socket
.getOutputStream());
int x = in.readInt(); // get number from client calculate square root
SqrtServer.stack.push(x);
int i = 0;
while ((i + 1) * (i + 1) <= x)
i++;
out.writeInt(i); // send square root
socket.close(); // close connection
} catch (IOException e) {
}
}
}