编写基于UDP的网络应用程序 (1)调试案例1:熟悉InetAddress类的使用 (2)调试案例2:掌握UDP编程的发送端与接收端的编程基础 【要求】 (1)在接收端输出本地IP地址,输出发送端的IP址和接收到的数据; (2)调试要求:同一个团队中每2人为一组,一名同学运行接收端程序,另一名同学运行发送端程序,并将l两人的运行结果汇总到一起提交。
时间: 2024-03-19 11:43:59 浏览: 28
很高兴回答你的问题!首先,需要了解一下UDP是一种无连接的协议,不同于TCP,因此在UDP编程中,需要自己实现数据包的发送和接收,而不是像TCP那样由系统自动处理。
调试案例1:熟悉InetAddress类的使用
在UDP编程中,需要使用InetAddress类来表示IP地址,可以使用以下代码获取本地IP地址:
```java
InetAddress localAddress = InetAddress.getLocalHost();
String localIP = localAddress.getHostAddress();
System.out.println("本地IP地址为:" + localIP);
```
调试案例2:掌握UDP编程的发送端与接收端的编程基础
发送端需要创建一个DatagramPacket对象,并指定目标IP地址和端口号,然后将数据发送出去。接收端需要创建一个DatagramSocket对象,接收到数据后,可以通过DatagramPacket对象获取发送端的IP地址和端口号,以及接收到的数据。
以下是一个简单的发送端和接收端的代码示例:
发送端代码:
```java
public class Sender {
public static void main(String[] args) throws IOException {
// 目标IP地址和端口号
InetAddress address = InetAddress.getByName("localhost");
int port = 8888;
// 发送的数据
String message = "Hello, world!";
byte[] data = message.getBytes();
// 创建DatagramPacket对象,指定目标IP地址和端口号
DatagramPacket packet = new DatagramPacket(data, data.length, address, port);
// 创建DatagramSocket对象,发送数据包
DatagramSocket socket = new DatagramSocket();
socket.send(packet);
// 关闭socket
socket.close();
}
}
```
接收端代码:
```java
public class Receiver {
public static void main(String[] args) throws IOException {
// 绑定本地IP地址和端口号
InetAddress address = InetAddress.getByName("localhost");
int port = 8888;
DatagramSocket socket = new DatagramSocket(port, address);
// 接收数据包
byte[] buffer = new byte[1024];
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
socket.receive(packet);
// 获取发送端的IP地址和端口号,以及接收到的数据
InetAddress senderAddress = packet.getAddress();
int senderPort = packet.getPort();
String message = new String(packet.getData(), 0, packet.getLength());
// 输出信息
System.out.println("本地IP地址为:" + address.getHostAddress());
System.out.println("发送端IP地址为:" + senderAddress.getHostAddress());
System.out.println("发送端端口号为:" + senderPort);
System.out.println("接收到的数据为:" + message);
// 关闭socket
socket.close();
}
}
```
注意:在同一个团队中,每2人为一组,一名同学运行接收端程序,另一名同学运行发送端程序,并将两人的运行结果汇总到一起提交。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)