(UDP通信)用Java语言实现读者向作者发送问题,作者接收问题后给读者进行解答。在作者端显示读者的问题及读者信息,然后输入解答内容并发送给读者。读者收到问题后显示解答内容。
时间: 2023-12-19 08:04:48 浏览: 78
用java实现UDP通信
4星 · 用户满意度95%
以下是 Java 语言实现读者向作者发送问题,作者接收问题后给读者进行解答的代码:
读者端代码:
```java
import java.net.*;
public class Reader {
public static void main(String[] args) throws Exception {
// 创建一个UDP socket
DatagramSocket socket = new DatagramSocket();
// 定义作者端的IP和端口号
InetAddress address = InetAddress.getByName("localhost");
int port = 8888;
// 待发送的问题
String question = "请问如何学好Java编程?";
// 将问题转换成字节数组
byte[] data = question.getBytes();
// 创建一个UDP数据包
DatagramPacket packet = new DatagramPacket(data, data.length, address, port);
// 发送数据包
socket.send(packet);
// 接收作者的解答
byte[] buffer = new byte[1024];
packet = new DatagramPacket(buffer, buffer.length);
socket.receive(packet);
// 将作者的解答转换成字符串并输出
String answer = new String(packet.getData(), 0, packet.getLength());
System.out.println("作者的解答为:" + answer);
// 关闭socket
socket.close();
}
}
```
作者端代码:
```java
import java.net.*;
public class Author {
public static void main(String[] args) throws Exception {
// 创建一个UDP socket并绑定到8888端口
DatagramSocket socket = new DatagramSocket(8888);
// 创建一个UDP数据包
byte[] buffer = new byte[1024];
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
// 接收读者发送的问题
socket.receive(packet);
// 将读者发送的问题转换成字符串并输出
String question = new String(packet.getData(), 0, packet.getLength());
System.out.println("读者的问题为:" + question);
// 获取读者的IP和端口号
InetAddress address = packet.getAddress();
int port = packet.getPort();
// 输入解答内容并发送给读者
String answer = "学好Java编程需要掌握Java语法和相关工具的使用,并多写代码练习。";
buffer = answer.getBytes();
packet = new DatagramPacket(buffer, buffer.length, address, port);
socket.send(packet);
// 关闭socket
socket.close();
}
}
```
以上代码实现了一个简单的UDP通信过程,读者向作者发送问题,作者接收问题后给读者进行解答。在作者端显示读者的问题及读者信息,然后输入解答内容并发送给读者。读者收到问题后显示解答内容。
阅读全文