1.编写一个UDP数据报网络程序,分别定义网络通信的两端:ClientA、ClientB。其中,ClinetA中连续向ClientB发送2个数据报,分别为:“你好”、“我是ClinetA”;ClientB分别接收对方发来的2个数据报,并将接收到的内容显示在命令行窗口。 要求:本程序只定义2个类ClientA、ClientB,分别代表网络通信的两端;ClientA只发送数据,不接收数据;ClientB只接收数据。
时间: 2024-03-02 10:47:54 浏览: 26
以下是实现该功能的Java代码,其中使用了Java的UDP网络编程API:
ClientA.java:
```java
import java.net.*;
public class ClientA {
public static void main(String[] args) throws Exception {
DatagramSocket socket = new DatagramSocket();
InetAddress address = InetAddress.getByName("localhost");
byte[] buf1 = "你好".getBytes();
DatagramPacket packet1 = new DatagramPacket(buf1, buf1.length, address, 8888);
byte[] buf2 = "我是ClientA".getBytes();
DatagramPacket packet2 = new DatagramPacket(buf2, buf2.length, address, 8888);
socket.send(packet1);
socket.send(packet2);
socket.close();
}
}
```
ClientB.java:
```java
import java.net.*;
public class ClientB {
public static void main(String[] args) throws Exception {
DatagramSocket socket = new DatagramSocket(8888);
byte[] buf1 = new byte[1024];
DatagramPacket packet1 = new DatagramPacket(buf1, buf1.length);
socket.receive(packet1);
String msg1 = new String(packet1.getData(), 0, packet1.getLength());
System.out.println("接收到的第一个数据报内容为:" + msg1);
byte[] buf2 = new byte[1024];
DatagramPacket packet2 = new DatagramPacket(buf2, buf2.length);
socket.receive(packet2);
String msg2 = new String(packet2.getData(), 0, packet2.getLength());
System.out.println("接收到的第二个数据报内容为:" + msg2);
socket.close();
}
}
```
上述代码中,ClientA向本地地址的8888端口连续发送两个数据报,内容分别为“你好”和“我是ClientA”;ClientB在本地地址的8888端口上监听,接收到两个数据报后将内容打印到命令行窗口上。
相关推荐
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)