编写java程序,编写一个TCP Socket的客户端和服务器端程序,实现如下功能: (1) 客户端程序向服务器端程序发出问候信息,内容自定 (2) 服务器端接收信息并显示信息,同时向客户端回送信息,回送内容自定 (3) 分别在DOS命令提示符界面中运行服务器和客户端程序,查看实验结果 (4) 在DOS界面中运行服务器程序,使用浏览器访问该服务器,观察服务器端获得的信息,查看浏览器中“开发者模式”network标签中显示的客户端请求信息,对比二者的内容,并予以解释说明。
时间: 2023-05-27 13:05:38 浏览: 108
服务器端代码:
```
import java.net.*;
import java.io.*;
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("服务器已启动,等待客户端连接...");
Socket clientSocket = serverSocket.accept();
System.out.println("客户端已连接,IP地址为:" + clientSocket.getInetAddress().getHostAddress());
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
String greeting = in.readLine();
System.out.println("客户端发送的问候信息为:" + greeting);
out.println("您好,欢迎连接服务器!");
clientSocket.close();
serverSocket.close();
}
}
```
客户端代码:
```
import java.net.*;
import java.io.*;
public class Client {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("localhost", 8888);
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String greeting = "你好,服务器!";
out.println(greeting);
String response = in.readLine();
System.out.println("服务器回送的信息为:" + response);
socket.close();
}
}
```
在DOS命令提示符中先运行服务器端程序,再运行客户端程序,可以看到客户端发送的问候信息被服务器端接收并显示在控制台中,同时服务器端回送信息也被客户端接收并显示在控制台中。
在DOS界面中运行服务器程序后,使用浏览器访问该服务器,可以看到服务器端依然可以接收到客户端发送的问候信息,并向客户端回送信息。在浏览器中打开“开发者模式”network标签,可以看到客户端请求的信息,包括请求的URL、请求方法、请求头和请求体等信息,其中请求体就是客户端发送的问候信息。服务器端获得的信息和客户端请求的信息内容一致。
阅读全文