UDP网络编程其他相关事项

netstat指令

netstat -an 可以查看当前主机网络情况,包括端口监听情况和网络连接情况。

netstat -an | more 可以分页显示。

要求在dos控制台下执行。

说明:(1)Listening表示某个端口在监听;(2)如果有一个外部程序(客户端)连接到该端口,就会显示一条连接信息。(3)可以输入ctrl +c退出指令。

UDP网络编程案例

类 DatagramSocket 和 DatagramPacket(数据包 / 数据报)实现了基于UDP协议网络程序。

UDP数据报通过数据报套接字 DatagramSocket 发送和接收,系统不保证UDP数据报一定能够安全送到目的地,也不能确定什么时候可以抵达。

DatagramPacket对象封装了UDP数据报,在数据报中包含了发送端的IP地址和端口号以及接收端的IP地址和端口号。

UDP协议中每个数据报都给出了完整的地址信息,因此无须建立发送方和接收方的连接。

UDP说明:                                                                                                                                        1、没有明确的服务端和客户端,演变成数据的发送端和接收端。                                                        2、接收数据和发送数据是通过 DatagramSocket 对象完成。                                                          3、将数据封装到DatagramPacket 对象/装包。                                                                                4、当接收到DatagramPacket 对象,需要进行拆包,取出数据。                                                        5、DatagramSocket可以指定在哪个端口接收数据。

基本流程:

1、核心的两个类/对象 DatagramSocket与DatagramPacket。

2、建立发送端,接收端(没有服务端和客户端概念)。

3、发送数据前,建立数据包/报DatagramPacket对象。

4、调用DatagramSocket的发送、接收方法。

5、关闭DatagramSocket。

接收端:

//1。创建一个DatagramSocket对象,准备接收数据

DatagramSocket socket = new DatagramSocket(端口号);

//2.构建一个DatagramPacket对象,准备接收数据(一个数据包最大64k)

byte[] buf = new byte[1024];

DatagramPacket packet = new DatagramPacket(buf, buf.length);

//调用接收方法,将通过网络传输的DatagramPacket对象填充到 packet 对象

//注:如果没有数据包发送到本机的9999端口,就会阻塞等待。

socket.receive(packet);

//把packet进行拆包,取出数据,并显示。

int length = packet.getLength();//实际接收到的数据字节长度

byte[] data = packet.getData();//接收到数据

String s = new String(data,0,length);

ystem.out.println(s);

//关闭资源

socket.close();

发送端:

//创建DatagramSocket 对象,准备接收数据

DatagramSocket socket = new DatagramSocket(9998);

//将需要发送的数据,封装到DatagramPacket对象

byte[] data ="内容".getBytes();

//说明:封装的DatagramPacket对象:data 内容字节数组,data.length,接收端IP,端口

DatagramPacket packet =new DatagramPacket(data,data.length,IP,端口);

//发送

socket.send(packet);

//关闭资源

socket.close(;l

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值