20175227張雪瑩 2018-2019-2 《Java程序設計》第十一週學習總結

20175227張雪瑩 2018-2019-2 《Java程序設計》第十一週學習總結

教材學習內容總結

第十三章 Java網絡編程html

  • URL類
    • 一個URL對象一般包含最基本的三部分信息:協議、地址、資源。
    • URL對象調用
      • InputStream openStream()
      • 方法能夠返回一個輸入流,該輸入流指向URL對象所包含的資源。經過該輸入流能夠將服務器上的資源讀入到客戶端。
  • InetAdress類
    • 獲取地址
      • 獲取Internet上主機的地址
    • 可使用InetAddress類的靜態方法getByName(String s);
      • 獲取本地機的地址
        • 咱們可使用InetAddress類的靜態方法getLocalHost()得到一個InetAddress對象,該對象含有本地機的域名和IP地址。
  • 套接字
    • 當兩個程序須要通訊時,它們能夠經過使用Socket類創建套接字對象並鏈接在一塊兒(端口號與IP地址的組合得出一個網絡套接字)。
    • 創建鏈接到服務器的套接字對象:
try{  Socket mysocket=new Socket(「http://192.168.0.78」,1880);
         }
        catch(IOException e)
        {  }
  • 創建ServerSocket對象:
try{  ServerSocket  serverForClient =new ServerSocket(2010);
          }
          catch(IOException e){}
  • 使用方法accept()將客戶的套接字和服務器端的套接字鏈接起來,代碼以下所示:
try{  Socket sc= serverForClient .accept();
          }
         catch(IOException e){}
  • 兩個原則
    • 服務器應當啓動一個專門線程,在該線程中和客戶的套接字創建鏈接
    • 因爲套接字的輸入流在讀取信息時可能發生阻礙,客戶端和服務器端都須要在一個單獨的線程中讀取信息
  • UDP數 據 報
    • 基於UDP通訊的基本模式是:
      • 將數據打包,稱爲數據包(比如將信件裝入信封同樣),而後將數據包發往目的地。
      • 接受別人發來的數據包(比如接收信封同樣),而後查看數據包中的內容。
    • 發送數據包
      • 用DatagramPacket類將數據打包,即用DatagramPacket類建立一個對象,稱爲數據包。
      • 用DatagramSocket類的不帶參數的構造方法:DatagramSocket()建立一個對象,該對象負責發送數據包。
  • 接收數據包
    • 首先用DatagramSocket的另外一個構造方法DatagramSocket(int port) 建立一個對象,其中的參數必須和待接收的數據包的端口號相同。
    • 而後對象mail_in使用方法receive(DatagramPacket pack)接受數據包。
    • 用 DatagramPack類的另一個構造方法: DatagramPack(byte data[],int length)建立一個數據包,用於接收數據包
  • 廣播數據報
    • 廣播數據報是一種較新的技術,要廣播或接收廣播的主機都必須加入到同一個D類地址。
  • Java 遠程調用(RMI)
    • RMI的設計細節
      • 擴展Remote接口
        • 定義一個接口是java.rmi包中Remote的子接口,即擴展Remote接口。
    • 遠程對象
      - 建立遠程對象的類必需要實現Remote接口,RMI使用Remote接口來標識遠程對象,可是Remote中沒有方法,所以建立遠程對象的類須要實現Remote接口的一個子接口。
    • 存根(Stub)與代理:RMI使用rmic命令生成存根
    • 啓動註冊rmiregistry: 執行rimregistry命令
    • 啓動遠程對象服務:遠程服務器使用java.rmi包中的Naming類調用其類方法rebind(String name, Remote obj)綁定一個遠程對象到rmiregistry所管理的註冊表中,該方法的name參數是URL格式,obj參數是遠程對象,未來客戶端的代理會經過name 找到遠程對象obj。
    • 運行客戶端程序:遠程服務器啓動遠程對象服務後,客戶端就能夠運行有關程序,訪問使用遠程對象。

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

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

  • 問題1:在運行例子1時,出現類錯誤提示
  • 問題1解決辦法:將兩個程序分別打包在同一文件夾下,經過輸入javac -encoding gbk Example13_1.java,而後成功編譯並運行。

代碼託管

上週考試錯題總結

java

結對及互評

評分標準

  1. 正確使用Markdown語法(加1分):
    • 不使用Markdown不加分
    • 有語法錯誤的不加分(連接打不開,表格不對,列表不正確...)
    • 排版混亂的不加分
  2. 模板中的要素齊全(加1分)
    • 缺乏「教材學習中的問題和解決過程」的不加分
    • 缺乏「代碼調試中的問題和解決過程」的不加分
    • 代碼託管不能打開的不加分
    • 缺乏「結對及互評」的不能打開的不加分
    • 缺乏「上週考試錯題總結」的不能加分
    • 缺乏「進度條」的不能加分
    • 缺乏「參考資料」的不能加分
  3. 教材學習中的問題和解決過程, 一個問題加1分git

  4. 代碼調試中的問題和解決過程, 一個問題加1分編程

  5. 本週有效代碼超過300分行的(加2分)
    • 一週提交次數少於20次的不加分
  6. 其餘加分:
    • 週五前發博客的加1分
    • 感想,體會不假大空的加1分
    • 排版精美的加一分
    • 進度條中記錄學習時間與改進狀況的加1分
    • 有動手寫新代碼的加1分
    • 課後選擇題有驗證的加1分
    • 代碼Commit Message規範的加1分
    • 錯題學習深刻的加1分
    • 點評認真,能指出博客和代碼中的問題的加1分
    • 結對學習狀況真實可信的加1分
  7. 扣分:
    • 有抄襲的扣至0分
    • 代碼做弊的扣至0分
    • 遲交做業的扣至0分

點評模板:

  • 博客中值得學習的或問題:服務器

  • 該同窗把老師上課講過的重點列了出來,體現了本身重點學習的過程。網絡

  • 感受感悟那一塊的內容能夠在具體一點,好比說具體遇到什麼問題,如何解決,從中收穫了什麼,或是教材學習中增加的關於調試代碼的經驗。socket

  • 代碼中值得學習的或問題:學習

  • 基於評分標準,我給本博客打分:XX分。得分狀況以下:xxx線程

點評過的同窗博客和代碼

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
第一週 11/11 1/1
第二週 262/273 1/2
第三週 642/915 1/3
第四周 384/1299 2/5
第五週 661/1960 1/6
第六週 1031/2991 2/8
第七週 123/3114 2/10
第八週 941/4055 2/12
第九周 1697/5752 4/16
第十週 1148/6900 2/18
第十一週 1083/7983 1/19

參考資料

  • [Java2實用教程(第5版)]
相關文章
相關標籤/搜索