亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

代碼的分析

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
提交
取消
Java Socket應用---通信是這樣練成的
  • 參與學習       125005    人
  • 解答問題       627    個

分享的是 Java 中的網絡編程,使用Socket實現網絡聊天通信

進入課程

代碼的分析

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號