利用Java1.实现daytime协议,从远程计算机上获取时间,并更新本机时间。 2.实现echo协议,向远程计算机发送信息,并获取返回信息。
时间: 2023-12-23 19:04:45 浏览: 32
1. 实现daytime协议:
```java
import java.io.*;
import java.net.*;
public class DaytimeClient {
public static void main(String[] args) {
try {
// 创建连接
Socket socket = new Socket("time.nist.gov", 13);
InputStream is = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
// 读取时间信息
String time = br.readLine();
// 解析时间信息
String[] tokens = time.split(" ");
String dateTime = tokens[2] + " " + tokens[3];
// 设置本机时间
Runtime.getRuntime().exec("cmd /c time " + dateTime);
// 关闭连接
br.close();
isr.close();
is.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
2. 实现echo协议:
```java
import java.io.*;
import java.net.*;
public class EchoClient {
public static void main(String[] args) {
try {
// 创建连接
Socket socket = new Socket("localhost", 7777);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
PrintWriter pw = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
// 发送消息并接收回复
String line;
while ((line = br.readLine()) != null) {
pw.println(line);
System.out.println("Server response: " + in.readLine());
}
// 关闭连接
br.close();
pw.close();
in.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
服务端代码:
```java
import java.io.*;
import java.net.*;
public class EchoServer {
public static void main(String[] args) {
try {
// 创建ServerSocket,监听端口7777
ServerSocket serverSocket = new ServerSocket(7777);
while (true) {
// 等待客户端连接
Socket socket = serverSocket.accept();
System.out.println("Client connected: " + socket.getInetAddress().getHostAddress());
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
// 接收消息并回复
String line;
while ((line = in.readLine()) != null) {
System.out.println("Received message: " + line);
out.println("Echo: " + line);
}
// 关闭连接
in.close();
out.close();
socket.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```