利用Java语言提供的Socket技术,建立一个C/S模式的应用,允许客户端用户输入2个整数,服务器端接收这2个整数,并计算出它们的和、差、积、商,最后送回客户端
时间: 2024-03-16 20:46:49 浏览: 65
好的,下面是一个简单的Java语言实现的C/S模式应用程序,可以实现客户端输入2个整数,服务器端计算它们的和、差、积、商,最后返回结果给客户端。
服务端代码:
```java
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) {
try {
// 创建ServerSocket对象,指定端口号为8888
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("服务端已启动,等待客户端连接...");
// 等待客户端连接
Socket socket = serverSocket.accept();
System.out.println("客户端已连接,IP地址为:" + socket.getInetAddress().getHostAddress());
// 获取输入流和输出流
InputStream inputStream = socket.getInputStream();
OutputStream outputStream = socket.getOutputStream();
// 读取客户端发送的数据
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line = reader.readLine();
int num1 = Integer.parseInt(line);
line = reader.readLine();
int num2 = Integer.parseInt(line);
System.out.println("客户端发送的数据为:" + num1 + "和" + num2);
// 计算并发送结果
PrintWriter writer = new PrintWriter(outputStream);
writer.println("和:" + (num1 + num2));
writer.println("差:" + (num1 - num2));
writer.println("积:" + (num1 * num2));
writer.println("商:" + (num1 / num2));
writer.flush();
// 关闭流和套接字
reader.close();
writer.close();
inputStream.close();
outputStream.close();
socket.close();
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
客户端代码:
```java
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) {
try {
// 创建Socket对象,指定服务器IP地址和端口号
Socket socket = new Socket("127.0.0.1", 8888);
// 获取输入流和输出流
InputStream inputStream = socket.getInputStream();
OutputStream outputStream = socket.getOutputStream();
// 向服务器发送数据
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
PrintWriter writer = new PrintWriter(outputStream);
System.out.println("请输入第一个整数:");
int num1 = Integer.parseInt(reader.readLine());
writer.println(num1);
System.out.println("请输入第二个整数:");
int num2 = Integer.parseInt(reader.readLine());
writer.println(num2);
writer.flush();
// 接收服务器发送的数据
reader = new BufferedReader(new InputStreamReader(inputStream));
String line = null;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
// 关闭流和套接字
reader.close();
writer.close();
inputStream.close();
outputStream.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
以上是一个简单的Java语言实现的C/S模式应用程序,可以实现客户端输入2个整数,服务器端计算它们的和、差、积、商,最后返回结果给客户端。
阅读全文