DatagramSocket(郵遞員):對應數據報的Socket概念,不需要創建兩個socket,不可使用輸入輸出流。
UDP編程:
DatagramSocket(郵遞員):對應數據報的Socket概念,不需要創建兩個socket,不可使用輸入輸出流。
DatagramPacket(信件):數據包,是UDP下進行傳輸數據的單位,數據存放在字節數組中。
UDP也需要現有Server端,然後再有Client端。
兩端都是DatagramPacket(相當於電話的概念),需要NEW兩個DatagramPacket。
InetAddress:網址
這種信息傳輸方式相當於傳真,信息打包,在接受端準備紙。
模式:
發送端:Server:
DatagramPacket inDataPacket=new DatagramPacket ((msg,msg.length); InetAdress.getByName(ip),port);
接收端:
clientAddress=inDataPack.getAddress();//取得地址
clientPort=inDataPack.getPort();//取得端口號
datagramSocket.send; //Server
datagramSocket.accept; //Client
URL:在應用層的編程
註意比較:
http://Localhost:8080/directory //查找網絡服務器的目錄
file://directory //查找本地的文件系統
java的開發主要以http為基礎。
反射:主要用於工具和框架的開發。
反射是對於類的再抽象;通過字符串來抽象類。
JAVA類的運行:classLoader:加載到虛擬機(vm)
Vm中只能存儲對象(動態運行時的概念),.class文件加載到VM上就成為一個對象,同時初始靜態成員及靜態代碼(只執行一次)。
Lang包下有一個類為Class:在反射中使用。此類中的每個對象為VM中的類對象,每個類都對應類類的一個對象(class.class)。
例:對於一個Object類,用getClass()得到其類的對象,獲得類的對象就相當於獲得類的信息,可以調用其下的所有方法,包括類的私有方法。
註意:在反射中沒有簡單數據類型,所有的編譯時類型都是對象。
反射把編譯時應該解決的問題留到了運行時。
DatagramSocket(郵遞員):對應數據報的Socket概念,不需要創建兩個socket,不可使用輸入輸出流。