编写一个TCP Socket的客户端和服务器端java程序,实现如下功能: (1)客户端程序向服务器端程序发出问候信息,内容自定 (2)服务器端接收信息并显示信息,同时向客户端回送信息,回送内容自定 (3)分别在DOS命令提示符界面中运行服务器和客户端程序,查看实验结果 (4)在DOS界面中运行服务器程序,使用浏览器访问该服务器,观察服务器端获得的信息,查看浏览器中“开发者模式”network标签中显示的客户端请求信息,对比二者的内容,并予以解释说明。写出200字实验心得
时间: 2023-05-28 21:02:55 浏览: 199
本次实验我们使用Java编写TCP Socket的客户端和服务器端程序,实现了客户端向服务器端发送问候信息并接收服务器端回送的信息的功能。通过在DOS命令提示符界面中分别运行客户端和服务器端程序,我们成功地实现了TCP Socket的通信,并观察到了实验结果。
在服务器端运行程序后,我们还使用浏览器访问了该服务器,并观察了服务器端获得的信息以及浏览器中“开发者模式”network标签中显示的客户端请求信息。通过对比二者的内容,我们发现浏览器中请求信息中还包括了一些HTTP报文的内容,例如请求头和响应头等。
通过本次实验,我们深入了解了TCP Socket通信的原理,并掌握了如何使用Java编写TCP Socket的客户端和服务器端程序。同时,我们还了解了HTTP协议的相关知识,加深了对网络通信的理解。
相关问题
编写一个java程序,编写一个TCP Socket的客户端和服务器端程序,实现如下功能: (1) 客户端程序向服务器端程序发出问候信息,内容自定 (2) 服务器端接收信息并显示信息,同时向客户端回送信息,回送内容自定 (3) 分别在DOS命令提示符界面中运行服务器和客户端程序,查看实验结果 (4) 在DOS界面中运行服务器程序,使用浏览器访问该服务器,观察服务器端获得的信息,查看浏览器中“开发者模式”network标签中显示的客户端请求信息,对比二者的内容,并予以解释说明。
客户端程序:
```java
import java.io.*;
import java.net.*;
public class TCPClient {
public static void main(String[] args) throws Exception {
String sentence;
String modifiedSentence;
BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
Socket clientSocket = new Socket("localhost", 6789);
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
System.out.println("请输入问候信息:");
sentence = inFromUser.readLine();
outToServer.writeBytes(sentence + '\n');
modifiedSentence = inFromServer.readLine();
System.out.println("服务器回送信息为:" + modifiedSentence);
clientSocket.close();
}
}
```
服务器端程序:
```java
import java.io.*;
import java.net.*;
public class TCPServer {
public static void main(String[] args) throws Exception {
String clientSentence;
String capitalizedSentence;
ServerSocket welcomeSocket = new ServerSocket(6789);
System.out.println("服务器已启动,等待客户端连接...");
while (true) {
Socket connectionSocket = welcomeSocket.accept();
BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream());
clientSentence = inFromClient.readLine();
System.out.println("客户端问候信息为:" + clientSentence);
capitalizedSentence = "服务器已收到您的问候:" + clientSentence.toUpperCase() + '\n';
outToClient.writeBytes(capitalizedSentence);
}
}
}
```
在DOS命令提示符界面中先运行服务器端程序,然后再运行客户端程序。客户端程序会提示用户输入问候信息,输入后,客户端程序会将该信息发送给服务器端,服务器端接收并显示该信息,并向客户端回送一条信息,客户端程序再将该信息显示出来,然后程序结束。
在DOS命令提示符界面中运行服务器端程序后,使用浏览器访问该服务器,可以看到服务器端显示了浏览器的请求信息,而浏览器中的“开发者模式”network标签中显示的客户端请求信息与在DOS命令提示符界面中运行客户端程序时的请求信息是一致的,都是发送了一条问候信息。这是因为浏览器也是通过TCP Socket与服务器通信的,所以服务器可以正常接收并处理浏览器的请求。
编写java程序,编写一个TCP Socket的客户端和服务器端程序,实现如下功能: (1) 客户端程序向服务器端程序发出问候信息,内容自定 (2) 服务器端接收信息并显示信息,同时向客户端回送信息,回送内容自定 (3) 分别在DOS命令提示符界面中运行服务器和客户端程序,查看实验结果 (4) 在DOS界面中运行服务器程序,使用浏览器访问该服务器,观察服务器端获得的信息,查看浏览器中“开发者模式”network标签中显示的客户端请求信息,对比二者的内容,并予以解释说明。
服务器端代码:
```
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、请求方法、请求头和请求体等信息,其中请求体就是客户端发送的问候信息。服务器端获得的信息和客户端请求的信息内容一致。
阅读全文