客户端和服务器互相发送和接收字符串 Java
时间: 2023-07-29 20:11:53 浏览: 55
在 Java 中,客户端和服务器之间可以通过套接字(Socket)来进行字符串的发送和接收。下面是一个简单的示例代码:
客户端:
```java
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) {
try {
// 创建Socket对象,指定服务器的IP地址和端口号
Socket socket = new Socket("服务器IP地址", 服务器端口号);
// 获取输出流,用于向服务器发送数据
OutputStream outputStream = socket.getOutputStream();
PrintWriter writer = new PrintWriter(outputStream);
// 向服务器发送字符串数据
writer.println("Hello, server!");
writer.flush();
// 获取输入流,用于从服务器接收数据
InputStream inputStream = socket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
// 读取服务器返回的字符串数据
String response = reader.readLine();
System.out.println("服务器返回的数据: " + response);
// 关闭资源
writer.close();
reader.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
服务器:
```java
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) {
try {
// 创建ServerSocket对象,并指定端口号
ServerSocket serverSocket = new ServerSocket(服务器端口号);
System.out.println("服务器已启动,等待客户端连接...");
// 等待客户端连接
Socket socket = serverSocket.accept();
System.out.println("客户端已连接!");
// 获取输入流,用于接收客户端发送的数据
InputStream inputStream = socket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
// 读取客户端发送的字符串数据
String request = reader.readLine();
System.out.println("客户端发送的数据: " + request);
// 获取输出流,用于向客户端发送数据
OutputStream outputStream = socket.getOutputStream();
PrintWriter writer = new PrintWriter(outputStream);
// 向客户端发送字符串数据
writer.println("Hello, client!");
writer.flush();
// 关闭资源
writer.close();
reader.close();
socket.close();
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在代码中,你需要将"服务器IP地址"替换为实际的服务器 IP 地址,"服务器端口号"替换为实际的服务器端口号。客户端通过创建 Socket 对象来连接服务器,然后通过输入流和输出流进行数据的发送和接收。服务器通过创建 ServerSocket 对象监听指定的端口,并等待客户端的连接,一旦连接建立,就可以通过输入流和输出流与客户端进行通信。