1. 程式人生 > >20165334 《java程序設計》第9周學習總結

20165334 《java程序設計》第9周學習總結

javap 分享圖片 body packet .com local 第四周 input ive

學號 20165334 《Java程序設計》第9周學習總結

教材學習內容總結

13章知識總結

獲取地址

1.獲取Internet上主機的地址

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

    1、獲取本地機的地址

    使用InetAddress類的靜態方法getLocalHost()獲得一個InetAddress對象,該對象含有本地機的域名和IP地址。

    2、客戶端套接字

    建立連接到服務器的套接字對象:
    try{  Socket mysocket=new Socket(“http://192.168.0.78”,1880);
     }
    catch(IOException e)
    {  } 
    與mysocket相關的方法
    getInputStream()獲得一個輸入流 
    getOutputStream()獲得一個輸出流 
    用getInputStream()得到的輸入流接到另一個DataInputStream數據流上
    用getOutputStream()得到的輸出流接到另一個DataOutputStream數據流上 

    3、ServerSocket對象與服務器端套接字

    服務器必須建立一個ServerSocket對象,該對象通過將客戶端的套接字對象和服務器端的一個套接字對象連接起來,從而達到連接的目的。 
    建立ServerSocket對象:
      try{  ServerSocket  serverForClient =new ServerSocket(2010);
      }
      catch(IOException e){} 
    使用方法accept()將客戶的套接字和服務器端的套接字連接起來,代碼如下所示:
        try{  Socket sc= serverForClient .accept();
        }
       catch(IOException e){}  
    所謂“接收”客戶的套接字連接就是accept()方法會返回一個和客戶端Socket對象相連接的Socket對象。

    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)

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

  • DatagramSocket mail_out=new DatagramSocket();
    mail_out.send(data_pack);

接收數據包

  1. 首先用DatagramSocket的另一個構造方法DatagramSocket(int port) 創建一個對象,其中的參數必須和待接收的數據包的端口號相同。例如,如果發送方發送的數據包的端口是5666,那麽如下創建DatagramSocket對象:
    DatagramSocket mail_in=new DatagramSocket(5666);
  2. 然後對象mail_in使用方法receive(DatagramPacket pack)接受數據包。
    3.用 DatagramPack類的另外一個構造方法: DatagramPack(byte data[],int length)創建一個數據包,用於接收數據包,例如:
    byte data[]=new byte[100];
    int length=90;
    DatagramPacket pack=new DatagramPacket(data,length);
    mail_in.receive(pack);
    該數據包pack將接收長度是length字節的數據放入data。

代碼托管

(statistics.sh腳本的運行結果截圖)

技術分享圖片

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一周 200/200 2/2 20/20
第二周 300/500 2/4 18/38
第三周 500/1000 3/7 22/60
第四周 300/1300 2/9 30/90
第五周 1000/1300 2/9 30/90
第六周 900/1300 2/9 30/90
第七周 600/1300 2/9 30/90
第八周 900/1300 2/9 30/90
第九周 13016/1300 2/9 30/90

參考資料

  • Java學習筆記(第8版)

  • 《Java學習筆記(第8版)》學習指導
  • ...

20165334 《java程序設計》第9周學習總結