一、根據《java2實用教程》和藍墨雲學習視頻學習第十三章;java
二、嘗試將課本重點內容用本身的話複述手打;git
三、輸入課本代碼並上傳碼雲;服務器
四、使用IDEA調試代碼;網絡
一個URL對象一般包含最基本的三部分信息:協議、地址、資源。多線程
13.1.1 URL的構造方法socket
public URL(String spec) throws MalformedURLException public URL(String protocol, String host,String file) throws MalformedURLException
13.1.2 讀取URL中的資源分佈式
InputStream openStream()
方法能夠返回一個輸入流,該輸入流指向URL對象所包含的資源。經過該輸入流能夠將服務器上的資源讀入到客戶端。13.2.1 地址的表示學習
1.域名 例如 www.tsinghua.edu.cn 2.IP地址 例如 202.108.35.210 java.net包中的InetAddress類對象含有一個Internet主機地址的域名和IP地址,例如 www.sina.com.cn/202.108.37.40 。
13.2.2 獲取地址url
1.獲取Internet上主機的地址 可使用InetAddress類的靜態方法getByName(String s); 得到一個InetAddress對象,該對象含有主機地址的域名和IP地址,該對象用以下格式表示它包含的信息:www.sina.com.cn/202.108.37.40 2.獲取本地機的地址 咱們可使用InetAddress類的靜態方法getLocalHost()得到一個InetAddress對象,該對象含有本地機的域名和IP地址。
13.3.1 套接字.net
13.3.2 客戶端套接字
try{ Socket mysocket=new Socket(「http://192.168.0.78」,1880); } catch(IOException e) {}
與mysocket相關的方法 getInputStream()得到一個輸入流 getOutputStream()得到一個輸出流
getInputStream()
獲得的輸入流接到另外一個DataInputStream
數據流上getOutputStream()
獲得的輸出流接到另外一個DataOutputStream
數據流上13.3.3 ServerSocket對象與服務器端套接字
ServerSocket
對象,該對象經過將客戶端的套接字對象和服務器端的一個套接字對象鏈接起來,從而達到鏈接的目的。ServerSocket
對象:try22{ ServerSocket serverForClient =new ServerSocket(2010); } catch(IOException e){}
accept()
將客戶的套接字和服務器端的套接字鏈接起來,代碼以下所示:try{ Socket sc= serverForClient .accept(); } catch(IOException e){}
所謂「接收」客戶的套接字鏈接就是accept()方法會返回一個和客戶端Socket對象相鏈接的Socket對象。
客戶端的套接字得到的輸入\輸出流和服務器端的套接字得到的輸出\輸入流互相鏈接.
13.3.4 使用多線程技術
public void connect(SocketAddress endpoint) throws IOException
請求和參數SocketAddress指定地址的套接字創建鏈接。connect
方法,可使用SocketAddress
的子類InetSocketAddress
建立一個對象,InetSocketAddress
的構造方法是:InetSocketAddress(InetAddress addr, int port)
基於UDP通訊的基本模式是:
13.4.1 發送數據包
DatagramPacket
類將數據打包,即用DatagramPacket
類建立一個對象,稱爲數據包。用DatagramPacket的如下兩個構造方法建立待發送的數據包:DatagramPacket(byte data[],int length,InetAddtress address,int port) DatagramPack(byte data[],int offset,int length,InetAddtress address,int port)
DatagramSocket
類的不帶參數的構造方法:DatagramSocket()
建立一個對象,該對象負責發送數據包。例如:DatagramSocket mail_out=new DatagramSocket(); mail_out.send(data_pack);
13.4.2 接收數據包
DatagramSocket mail_in=new DatagramSocket(5666);
DatagramPack(byte data[],int length)
建立一個數據包,用於接收數據包,例如:byte data[]=new byte[100]; int length=90; DatagramPacket pack=new DatagramPacket(data,length); mail_in.receive(pack);
Java遠程調用,RMI(Remote Method Invocation)是一種分佈式技術,使用RMI可讓一個虛擬機(JVM)上的應用程序請求調用位於網絡上另外一處的JVM上的對象方法。習慣上稱發出調用請求的虛擬機(JVM)爲(本地)客戶機,稱接受並執行請求的虛擬機(JVM)爲(遠程)服務器。
13.6.1 遠程對象及其代理
13.6.2 RMI的設計細節