可以在客户端和服务器端都设置一个标志位,表示当前是否正在进行对话。当需要终止上一次对话时,将该标志位设为false,然后关闭socket连接。在下一次需要进行对话时,重新建立socket连接,并将标志位设为true,即可开始新的对话。以下是示例代码:
客户端:
```java
Socket socket = new Socket("localhost", 8888);
boolean isTalking = true;
// 发送消息
while (isTalking) {
// 发送消息
}
// 终止对话
isTalking = false;
socket.close();
// 开始新的对话
socket = new Socket("localhost", 8888);
isTalking = true;
```
服务器端:
```java
ServerSocket serverSocket = new ServerSocket(8888);
while (true) {
Socket socket = serverSocket.accept();
boolean isTalking = true;
// 接收消息
while (isTalking) {
// 接收消息
}
// 终止对话
isTalking = false;
socket.close();
}
```