1. 程式人生 > >20175322 《Java程序設計》第十一周學習總結

20175322 《Java程序設計》第十一周學習總結

發送 for inf 發送數據 失誤 mys min nec douban

20175322 《Java程序設計》第十一周學習總結

教材學習內容總結

  • URL類
    • 一個URL對象通常包含最基本的三部分信息:協議,地址,資源
    • 構造方法:public URL (String spec) throws MalformedURLException
    • URL對象調用:InputStream openStream()
  • InetAdress類
    • 獲取地址:
      獲取Internet上主機的地址:可以使用InetAddress類的靜態方法getByName(String s);
      獲取本地機的地址:可以使用InetAddress類的靜態方法getLocalHost()獲得一個InetAddress
      對象,該對象含有本地機的域名和IP地址
  • 套接字
    • .IP地址標識Internet上的計算機,端口號標識正在計算機上運行的進程(程序)。端口號被規定為一個16位的0~65535之間的整數
    • 當兩個程序需要通信時,它們可以通過使用Socket類建立套接字對象並連接在一起(端口號與IP地址的組合得出一個網絡套接字)
    • (1)客戶端套接字
      建立連接到服務器的套接字對象:try{ Socket mysocket=new Socket(“http://192.168.0.78”,1880); } catch(IOException e){}
      獲得一個輸入流:getInputStream()
      獲得一個輸出流:getOutputStream()
    • (2) ServerSocket對象與服務器端套接字
      建立ServerSocket對象:try{ ServerSocket serverForClient =new ServerSocket(2010); } catch(IOException e){}
      使用方法accept()將客戶的套接字和服務器端的套接字連接起來,代碼如下所示:try{ Socket sc= serverForClient .accept(); } catch(IOException e){}
    • (3)使用多線程技術
      客戶使用Socket類不帶參數的構造方法Socket()創建一個套接字對象,該對象需調用public void connect(SocketAddress endpoint) throws IOException

      InetSocketAddress的構造方法是:InetSocketAddress(InetAddress addr, int port)
  • UDP數據報
    • (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(int port)創建一個對象,其中的參數必須和待接收的數據包的端口號相同
      對象mail_in使用方法receive(DatagramPacket pack)接受數據包
    • 用 DatagramPack類的另外一個構造方法:DatagramPack(byte data[],int length)

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

  • 問題1:運行第四個例子時顯示網絡連接中斷,程序運行失敗
  • 問題1解決方案:認真翻看書本後發現運行程序時操作失誤,需要打開兩個端口分別運行客戶端和服務器端,重新調試後運行成功

代碼托管

  • 技術分享圖片

參考資料

  • Java學習筆記(第8版)

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

20175322 《Java程序設計》第十一周學習總結