Javatcp双向通信
时间: 2024-06-15 10:02:14 浏览: 14
在Java中实现TCP双向通信,通常涉及套接字编程。以下是一个简单的示例,展示了客户端和服务端如何交互:
**服务器端(Server.java)**:
```java
import java.io.*;
import java.net.*;
public class Server {
private ServerSocket serverSocket;
public static void main(String[] args) throws IOException {
Server server = new Server();
server.createServer();
}
private void createServer() throws IOException {
serverSocket = new ServerSocket(8080); // 建立监听8080端口的服务器
Socket socket = serverSocket.accept(); // 等待客户端连接
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println("Received message from client: " + inputLine);
out.println("Message received and acknowledged.");
}
in.close();
out.close();
socket.close();
}
}
```
**客户端(Client.java)**:
```java
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) throws IOException {
Client client = new Client();
client.connectToServer();
}
private void connectToServer() throws IOException {
Socket socket = new Socket("localhost", 8080); // 连接到服务器
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
out.println("Hello, Server!"); // 发送消息
String response = in.readLine();
System.out.println("Server's response: " + response);
socket.close();
}
}
```
在这个例子中,客户端向服务器发送一条消息,服务器接收并回应,形成双向通信。如果客户端发送多条消息,服务器会逐条处理并回应。