为了账号安全,请及时绑定邮箱和手机立即绑定

代码的分析

http://img1.sycdn.imooc.com//57451c27000105e707750372.jpg

InetAddress address=packet.getAddress();这句中的packet.getAddress为什么获得的就是客户端的IP地址?

正在回答

2 回答

很简单,上面定义了一个DatagramPacket packet=new DatagramPacket(data,data.length);你就把它想象成空的模型,模子已经搭好了但是没有数据。而socket.receive(packet);这句话就是将这个类似模型结构的值存入到这个模型里面,然后通过这个模型获得其他想要的信息,例如InetAddress address=packet.getAddress(); 

---------------------------------------------------------------------

老师之前说过了这句话,所有的信息都存储于DatagramPacket 中,所以,UDP是针对于packet进行主要操作的。

1 回复 有任何疑惑可以回复我~

看前面的socket.receive(packet);

packet是从客服端发送过来的。

0 回复 有任何疑惑可以回复我~
#1

少艾 提问者

可是,定义上面定义服务器端的数据报的时候,DatagramPacket packet=new DatagramPacket(data,data.length);也定义了一个packet,那么程序是怎么区分这两个数据报对象到底是从客户端发送过来的呢,还是服务器端定义的?
2016-05-27 回复 有任何疑惑可以回复我~
#2

qwerthink 回复 少艾 提问者

DatagramPacket packet=new DatagramPacket(data,data.length);只是定义了一个packet。socket.receive(packet);把客户端发来的数据放到了你定义的packet中,所以packet中就有了客户端的信息。
2016-09-30 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

代码的分析

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信