基于java写一个TCP Server和一个TCP Client例子
时间: 2024-04-09 08:33:38 浏览: 17
当然可以!下面是一个基于Java的TCP Server和TCP Client的例子:
TCP Server(服务器端):
```java
import java.io.*;
import java.net.*;
public class TCPServer {
public static void main(String[] args) {
try {
// 创建ServerSocket对象,指定监听的端口号
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("Server started. Waiting for client...");
// 监听客户端的连接请求
Socket clientSocket = serverSocket.accept();
System.out.println("Client connected.");
// 获取输入流,用于接收客户端发送的数据
InputStream inputStream = clientSocket.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
// 获取输出流,用于向客户端发送数据
OutputStream outputStream = clientSocket.getOutputStream();
PrintWriter printWriter = new PrintWriter(outputStream);
String message;
while ((message = bufferedReader.readLine()) != null) {
System.out.println("Received from client: " + message);
// 处理客户端发送的数据(这里简单地将接收到的消息原样返回给客户端)
printWriter.println(message);
printWriter.flush();
}
// 关闭资源
bufferedReader.close();
printWriter.close();
clientSocket.close();
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
TCP Client(客户端):
```java
import java.io.*;
import java.net.*;
public class TCPClient {
public static void main(String[] args) {
try {
// 创建Socket对象,指定连接的服务器IP和端口号
Socket socket = new Socket("localhost", 8888);
// 获取输入流,用于接收服务器发送的数据
InputStream inputStream = socket.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
// 获取输出流,用于向服务器发送数据
OutputStream outputStream = socket.getOutputStream();
PrintWriter printWriter = new PrintWriter(outputStream);
// 发送数据到服务器
String message = "Hello, server!";
printWriter.println(message);
printWriter.flush();
// 接收服务器返回的数据
String response;
if ((response = bufferedReader.readLine()) != null) {
System.out.println("Received from server: " + response);
}
// 关闭资源
bufferedReader.close();
printWriter.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
这是一个简单的例子,TCP Server监听指定端口,TCP Client连接到服务器并发送一条消息,然后服务器将收到的消息原样返回给客户端。你可以根据自己的需求进行相应的修改和扩展。