20165203《Java程序設計》第九周學習總結

20165203《Java程序設計》第九周學習總結

教材學習內容總結

URL類html

  • URL類是java.net包中的一個重要的類,URL的實例封裝着一個統一資源定位符,使用URL建立對象的應用程序稱做客戶端程序。
  • 一個URL對象一般包含最基本的三部分信息:協議、地址、資源。
  • 構造方法:
public URL(String spec) throws MalformedURLException
public URL(String protocol, String host,String file) throws MalformedURLException
  • 讀取URL中的資源:URL對象調用InputStream openStream()

InetAdress類java

  • 地址的表示:域名和IP地址
  • 獲取Internet上主機的地址:
    1.可使用InetAddress類的靜態方法getByName(String s);
    2.得到一個InetAddress對象,該對象含有主機地址的域名和IP地址,該對象用以下格式表示它包含的信息:
    www.sina.com.cn/202.108.37.40
  • 獲取本地機的地址
    可使用InetAddress類的靜態方法getLocalHost()得到一個InetAddress對象,該對象含有本地機的域名和IP地址。

套接字git

  • 與mysocket相關的方法
    getInputStream()得到一個輸入流
用```getInputStream()```獲得的輸入流接到另外一個```DataInputStream```數據流上
用```getOutputStream()```獲得的輸出流接到另外一個```DataOutputStream```數據流上 

- ServerSocket對象與服務器端套接字:  
  1.創建```ServerSocket```對象:
try{  ServerSocket  serverForClient =new ServerSocket(2010);
  }
  catch(IOException e){}
2.使用方法accept()將客戶的套接字和服務器端的套接字鏈接起來
try{  Socket sc= serverForClient .accept();
    }
   catch(IOException e){}
3.所謂「接收」客戶的套接字鏈接就是accept()方法會返回一個和客戶端Socket對象相鏈接的Socket對象。

- 使用多線程技術    
爲了防止堵塞線程,服務器端收到一個客戶的套接字後,就應該啓動一個專門爲該客戶服務的線程。  

UDP數據報  

- 基於UDP通訊的基本模式是:  
  1將數據打包,稱爲數據包(比如將信件裝入信封同樣),而後將數據包發往目的地。  
  2.接受別人發來的數據包(比如接收信封同樣),而後查看數據包中的內容。  

- 發送數據包
  1.用```DatagramPacket```的如下兩個構造方法建立待發送的數據包:

DatagramPacket(byte data[],int length,InetAddtress address,int port)
DatagramPack(byte data[],int offset,int length,InetAddtress address,int port)編程

2.用```DatagramSocket```類的不帶參數的構造方法:```DatagramSocket()```建立一個對象,該對象負責發送數據包。例如:

DatagramSocket mail_out=new DatagramSocket();
mail_out.send(data_pack);服務器

- 接收數據包  
  1.用```DatagramSocket```的另外一個構造方法```DatagramSocket(int port)``` 建立一個對象,其中的參數必須和待接收的數據包的端口號相同。  
  2.對象```mail_in```使用方法```receive(DatagramPacket pack)```接受數據包。  
  3.用``` DatagramPack```類的另一個構造方法: ```DatagramPack(byte data[],int length)```建立一個數據包,用於接收數據包   

廣播數據報  

Java 遠程調用(RMI)

## 教材學習中的問題和解決過程  

Q:在學習教材時,不太明白```套接字```的含義  
A:通過本身查閱百度和資料,獲得了答案:  

- 源IP地址和目的IP地址以及源端口號和目的端口號的組合稱爲套接字。其用於標識客戶端請求的服務器和服務。

- 它是網絡通訊過程當中端點的抽象表示,包含進行網絡通訊必需的五種信息:鏈接使用的協議,本地主機的IP地址,本地進程的協議端口,遠地主機的IP地址,遠地進程的協議端口。    
-- [套接字](https://baike.so.com/doc/383276-405861.html)  

## 代碼調試中的問題和解決過程  

## [代碼託管](https://gitee.com/xyx-nice/20165203xyx.git)    
  
![](https://images2018.cnblogs.com/blog/1297630/201804/1297630-20180428131837750-1573527221.jpg)
## 上週考試錯題總結  

對於下列程序,哪一個敘述是正確的?

public class E {
public static void main(String args[])
Target target =new Target();
Thread thread =new Thread(target);
thread.start();
}
}
class Target implements Runnable{
public void run(){
System.out.println("ok"); }
}
```網絡

A.JVM認爲這個應用程序共有兩個線程。
B.JVM認爲這個應用程序只有一個主線程。
C.JVM認爲這個應用程序只有一個thread線程。
D.thread的優先級是10級。多線程

正解:B
解析:本題是用Thread建立的線程,很明顯,Thread只建立了一個線程thread
因此,咱們在利用Thread聲明線程時,thread聲明瞭幾個線程,天然線程就有幾個。socket

其餘(感悟、思考等,可選)

本週學習了Java專門用於網絡編程的類,聯繫了計算機網絡課上學到的知識,感受收穫頗豐。學習

學習進度條

~ 代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 48/48 1/1 20/20
第二週 390/438 2/3 18/38
第三週 886/1304 1/4 18/56
第四周 1105/2409 1/5 30/86
第五週 1229/3196 1/6 20/106
第六週 1147/4343 2/8 25/131
第七週 1862/3668 1/9 20/151
第八週 955/5298 1/10 20/171
第九周 1413/5801 1/11 11/182
相關文章
相關標籤/搜索