编写一个java程序,编写一个TCP Socket的客户端和服务器端程序,实现如下功能: (1) 客户端程序向服务器端程序发出问候信息,内容自定 (2) 服务器端接收信息并显示信息,同时向客户端回送信息,回送内容自定 (3) 分别在DOS命令提示符界面中运行服务器和客户端程序,查看实验结果 (4) 在DOS界面中运行服务器程序,使用浏览器访问该服务器,观察服务器端获得的信息,查看浏览器中“开发者模式”network标签中显示的客户端请求信息,对比二者的内容,并予以解释说明。
时间: 2023-05-28 09:03:07 浏览: 135
客户端程序:
```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与服务器通信的,所以服务器可以正常接收并处理浏览器的请求。
阅读全文