利用tcp协议实现服务器端与客户端问答:“去哪儿学习java”,“图书馆”代码
时间: 2023-10-27 13:03:39 浏览: 61
TCP协议是一种面向连接的协议,可以实现可靠的数据传输。利用TCP协议实现服务器端与客户端问答的过程如下:
服务器端代码:
```java
import java.net.*;
import java.io.*;
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = null;
Socket clientSocket = null;
PrintWriter out = null;
BufferedReader in = null;
try {
serverSocket = new ServerSocket(8888); // 创建服务端Socket并指定端口号
clientSocket = serverSocket.accept(); // 监听客户端连接请求
out = new PrintWriter(clientSocket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println("客户端问:" + inputLine);
// 客户端提问后,服务器给出回答
if (inputLine.equals("去哪儿学习java")) {
out.println("图书馆");
break;
}
}
} catch (IOException e) {
System.out.println("I/O错误:" + e);
} finally {
// 关闭资源
out.close();
in.close();
clientSocket.close();
serverSocket.close();
}
}
}
```
客户端代码:
```java
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) throws IOException {
Socket socket = null;
PrintWriter out = null;
BufferedReader in = null;
try {
socket = new Socket("localhost", 8888); // 创建与服务器连接的Socket
out = new PrintWriter(socket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out.println("去哪儿学习java"); // 向服务器发送问题
String answer = in.readLine(); // 从服务器接收回答
System.out.println("服务器回答:" + answer);
} catch (UnknownHostException e) {
System.out.println("无法连接到服务器:" + e);
} catch (IOException e) {
System.out.println("I/O错误:" + e);
} finally {
// 关闭资源
out.close();
in.close();
socket.close();
}
}
}
```
以上代码使用TCP协议实现了一个简单的服务器和客户端问答。客户端向服务器发送了问题“去哪儿学习java”,服务器接收到问题后给出回答“图书馆”。