<option id="mwy0y"><strong id="mwy0y"></strong></option>
  • <ul id="mwy0y"><sup id="mwy0y"></sup></ul>
  • <ul id="mwy0y"></ul>
  • <del id="mwy0y"><dfn id="mwy0y"></dfn></del><ul id="mwy0y"><sup id="mwy0y"></sup></ul>
  • <abbr id="mwy0y"></abbr>

    千鋒教育-做有情懷、有良心、有品質的職業教育機構

    400-811-9990
    手機站
    千鋒教育

    千鋒學習站 | 隨時隨地免費學

    千鋒教育

    掃一掃進入千鋒手機站

    領取全套視頻
    千鋒教育

    關注千鋒學習站小程序
    隨時隨地免費學習課程

    上海
    • 北京
    • 鄭州
    • 武漢
    • 成都
    • 西安
    • 沈陽
    • 廣州
    • 南京
    • 深圳
    • 大連
    • 青島
    • 杭州
    • 重慶
    當前位置:長沙千鋒IT培訓  >  技術要點  >  千鋒長沙java培訓分享之Socket編程

    千鋒長沙java培訓分享之Socket編程

    來源:千鋒教育
    發布人:千鋒長沙
    時間: 2022-01-04 16:50:38

           socket編程一般指的就是網絡編程,常見的服務端和客戶機都是必不可少的,今天千鋒長沙java培訓就來給大家介紹一下socket編程中常見的概念問題。

    src=http___images.edutt.com_plan_202010_12_160248658493696.png&refer=http___images.edutt

    一、常見傳輸協議

    1、tcp協議

    TCP (Transmission Control Protocol,傳輸控制協議):“面向連接 ”,可靠的、基于字節流的運輸層(Transport layer)通信協議 。

    面向連接服務要經過三個階段:數據傳數前,先建立連接,連接建立后再傳輸數據,數據傳送完后,釋放連接。面向連接服務,可確保數據傳送的次序和傳輸的可靠性。

    2、udp協議

    UDP(User Datagram Protocol ,用戶數據包協議):“面向非連接”,在正式通信前不必與對方先建立連接,不管對方狀態就直接發送。

    無連接服務的特點是:無連接服務只有傳輸數據階段。消除了除數據通信外的其它開銷。

    3、IP協議

    IP( Internet Protocol ):計算機網絡相互連接進行通信而設計的協議。互聯網地址或Internet地址。是用來唯一標識互聯網上計算機的邏輯地址。

    InetAddress代表了一個網絡目標地址對象,封裝了主機名和數字類型的地址信息。

    InetAddress ia=InetAddress.getLocalHost(); //獲得本機IP地址情況

    System.out.println(ia.getHostName()); //得到主機名

    System.out.println(ia.getHostAddress()); //得到主機地址

    InetAddress ia2=InetAddress.getByName("T1"); //通過主機名獲得信息

    System.out.println(ia2.getHostAddress());

    InetAddress ia3=InetAddress.getByAddress(new byte[]{(byte)192,(byte)168,0,86}); //通過主機IP獲得信息

    System.out.println(ia3.getHostName());

    InetAddress ia4=InetAddress.getByName("http://www.163.com"); //根據域名到DNS查詢Ip

    System.out.println("163 IP:"+ia4.getHostAddress());

    二、URL實現網頁靜態化

    類 URL 代表一個統一資源定位符,它是指向互聯網“資源”的指針。利用他可以獲得網絡資源,讀取WWW服務器上的數據。

    這里我們將讀取到的數據轉換為流,然后保存到本地(類似網頁靜態化)。

    BufferedReader br=null;FileWriter fw=null;

    try {

    URL u=new URL("http://mail.163.com/"); //獲得網絡資源

    InputStream fis=u.openStream(); //獲得URL的輸入數據流

    InputStreamReader fr=new InputStreamReader(fis);

    br=new BufferedReader(fr); //讀取并封裝字符流

    fw=new FileWriter("D://163.html"); //保存為文件

    String s=null;

    while((s=br.readLine())!=null){ //操作

    System.out.println(s);

    fw.write(s);

    }

    } catch (MalformedURLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}finally{

    try {

    br.close();fw.flush();fw.close();} catch (IOException e) {e.printStackTrace();}

    }

    三、TCP套接字

    為了區別不同的應用程序進程和連接,許多計算機操作系統為應用程序與TCP/IP協議交互提供了稱為套接字(Socket)的接口。

    Socket可以看作是通信連接兩端的收發器。

    套接字,Socket是網絡上運行的程序之間雙向通信鏈路的端點。

    Socket所要完成的通信就是基于連接的通信,建立連接所需的程序分別運行在客戶端和服務器端。

    套接字連接就是客戶端的套接字對象和服務器端的套接字對象通過輸入/輸出流連接在一起。

    2、TCP套接字

    在Java中,套接字(通信端點)被抽象為類,我們只需要創建Socket類的對象,就可以使用套接字。

    Socket中有輸入輸出流對象,同時能實現服務器之間的數據傳輸。

    3、Socket部分

    通過將這3個參數結合起來,與一個Socket綁定,應用層就可以和傳輸層通過套接字接口,區分來自不同應用程序進程或網絡連接的通信,實現數據傳輸的并發服務。

    一個程序(Program B )將一段信息寫入Socket中,該Socket將這段信息發送給另外一個Socket(Program A)中,使這段信息能傳送到其他程序中。

    Socket工作步驟:

    a、建立連接

    在服務器端通過指定一個用來等待的連接的端口號創建一個 ServerSocket實例.

    在客戶端通過主機和端口號創建一個 socket實例,連到服務器上.

    ServerSocket類的accept方法使服務器處于阻塞狀態,等待用戶請求

    b、數據通信

    建立socket連接后,還應該建立輸入輸出數據流,客戶程序可以向Socket寫入請求,服務器程序處理請求,并把處理結果通過Socket返回給客戶端,完成通過虛擬通道的數據通信;

    c、拆除連接

    通信結束,將所建立的虛擬連接全部拆除。

    聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。

    猜你喜歡LIKE

    最新文章NEW

    相關推薦HOT

    更多>>

    快速通道 更多>>

    最新開班信息 更多>>

    網友熱搜 更多>>