JAVA代码实现通过网络编程实现客户端与服务器端程序设计,客户端发出一个数值,服务器端计算圆的面积并返回给客户端,请讲程序代码和运行结果截图上交。
时间: 2024-11-05 09:31:59 浏览: 4
Java collection_java_控制服务器_服务器_
在网络编程中,客户端通常会发起连接请求,然后发送数据到服务器,服务器处理数据后返回结果。这里是一个简单的Java示例,展示了使用Socket编程的基本原理。我们将使用ServerSocket(服务器端)接收客户端的请求,并使用PrintWriter(用于输出字符串到Socket连接)发送响应。客户端则使用Socket建立连接,读取服务器的回复。
**服务器端(Server.java)**:
```java
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) throws IOException {
int port = 8000; // 端口号
ServerSocket server = new ServerSocket(port);
System.out.println("Server is running on port " + port);
while (true) {
Socket client = server.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
String input = in.readLine(); // 接收客户端发送的数值
double radius = Double.parseDouble(input); // 转换为double类型
double area = Math.PI * radius * radius; // 计算圆的面积
PrintWriter out = new PrintWriter(client.getOutputStream(), true);
out.println("Area of circle with radius " + radius + " is: " + area);
client.close();
}
}
}
```
**客户端(Client.java)**:
```java
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) throws IOException {
String serverAddress = "localhost"; // 服务器地址
int port = 8000;
Socket socket = new Socket(serverAddress, port);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
// 客户端向服务器发送数值
out.println("Radius to calculate: 5.0"); // 示例值,你可以输入任意实数
// 从服务器读取响应
String response = in.readLine();
System.out.println(response);
out.close();
in.close();
socket.close();
}
}
```
当运行这个程序时,如果客户端发送的圆半径为5.0,服务器将计算出面积并返回给客户端。由于这是一个文本交互的例子,实际运行不会显示图形化的结果截图,但在控制台上会看到类似这样的输出:
服务器输出:
`Server is running on port 8000`
客户端输出:
`Area of circle with radius 5.0 is: 78.53981633974483`
阅读全文