Java 之 網路編程

來源:互聯網
上載者:User

標籤:pre   會話   標準   nbsp   網路編程   輸出資料流   ade   span   cep   

1.OSI模型

  a.全稱:開放系統互聯

  b.七層模型:應用程式層、展示層、會話層、傳輸層、網路層、資料連結層、物理層

  c.注意:OSI模型 是所謂的 理論標準

 

2.TCP/IP模型

  a.四層模型:應用程式層、傳輸層、網路互聯層、網路介面層

        應用程式層——對應OSI模型中的 應用程式層、展示層、會話層

        傳輸層——對應OSI模型中的 傳輸層

        網路互聯層——對應OSI模型中的 網路層

        網路介面層——對應OSI模型中的 資料連結層、物理層

  b.特點:①TCP是一種安全的協議,但速度沒有UDP快

      ②TCP有三向交握機制,保證傳輸的安全性

      ③http、smtp、soap、ftp 底層指定使用TCP,被稱為 TCP/IP協議簇

  c.連接埠號碼:連接埠號碼只能為 0~65535,注意前1024不準使用

       tel:23  smtp:25  ftp:21  http:80

 

 

3.Socket類

  a.用戶端——訊息的發起方

    ①得到要發送的訊息,可以接收外部輸入

String msg = new Scanner(System.in).next();

    ②得到Socket對象

Socket sc = null;sc = new Socket("127.0.0.1",9527);        //傳IP地址與連接埠號碼

    ③把訊息交給Socket對象——由於是發送,所以方向是輸出資料流;發送內容可以是文本也可以是位元據,所以它提供的是位元組流——綜上,一定是OutputStream

OutputStream out = sc.getOutputStream();        //方法一out.write(msg.getBytes());out.flush();BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(sc.getOutputStream()));        //方法二bw.write(msg);bw.flush();

    ④在finally塊中關閉通道

if(sc != null){    try {        sc.close();    } catch (IOException e) {        e.printStackTrace();    }}

 

  b.服務端

    ①建立伺服器監聽器

ServerSocket server = null;server = new ServerSocket(9527);

    ②開始監聽

while(true){    Socket socket = server.accept();        //accept會進入阻塞狀態,一旦有訊息發送過來,就返回Socket對象    //④開啟子線程進行訊息處理    new ProcessThread(socket);    }

    ③在finally塊中關閉通道

if(server != null){    try {        server.close();    } catch (IOException e) {        e.printStackTrace();    }}

    ④在子線程中,從Socket的InputStream取資料

public void run() {    BufferedReader br = null;    try {        br = new BufferedReader(new InputStreamReader(socket.getInputStream()));        String msg = br.readLine();        System.out.println("接收的訊息:" + msg);    } catch (IOException e) {        e.printStackTrace();    } finally{        if(br != null){            try {                br.close();            } catch (IOException e) {                e.printStackTrace();            }                        }        if(socket != null){            try {                socket.close();            } catch (IOException e) {                e.printStackTrace();            }        }    }        }

    

    

       

 

Java 之 網路編程

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.