天天看點

網絡程式設計網絡模型網絡通訊要素SocketSocket的UDP傳輸協定Socket(用戶端)和ServerSocket(服務端) URL類(get方法)相關知識點:遇見的問題:



osi參考模型

tcp/ip參考模型

網絡程式設計網絡模型網絡通訊要素SocketSocket的UDP傳輸協定Socket(用戶端)和ServerSocket(服務端) URL類(get方法)相關知識點:遇見的問題:

學的網絡程式設計主要在應用層(我想android、javaweb、qq、夢幻西遊等吧,估計是)、傳輸層和網際層混,每個層都有自己的協定規則。

傳輸層主要用tcp(同步;面向連接配接,資料量大)、udp(異步;面向無連接配接,大小限制在64k内,qq聊天、網絡視訊用的udp)

網際層主要用ip協定

應用層協定:http

ip位址:辨別網絡上的電腦的,相當于給電腦取個唯一的名字   192.168.1.1,最大隻能設定255這是位元組的最大數,(8個1的二進制轉10進制得出的)

              127.0.0.1本地回環位址。ip位址資料太多也難記,是以取了名字127.0.0.1 = localhost

               ip/v6不ip/v4的組合數更大,ip/6還包含字元

端口号‘:用來辨別電腦上的網絡應用程式的,(為什麼a同學,通過qq用網絡發個資訊給b同學,然後b同學隻能用qq接受,而不能用飛秋或其他程式接收呢?或者a同學的qq怎麼準确的發給了b同學的qq上了呢?這就是端口展現的作用了。)

                0-1024端口,一般留給系統用,有0-65535個端口

傳輸協定:通訊的規則。(就像a同學用英文,而b同學用中文,他們兩能交流嗎?)是以網絡上的2台電腦要通信就要用同一個規則。

                  國際組織定義了通用的協定是tcp/ip協定,也是我們最常用的。它能用于廣域網也能用于區域網路。也還有其他的協定。特有的組織或機關有自己特有的通信協定。

             使用最頻繁的三個方法:connect、getinputstream、getoutputstream

             通信的兩端都有socket、網絡通信其實就是socket間的通信、資料在2個socket之間通過io流傳輸。

             套接字,使應用程式能夠讀寫與收發通訊協定(protocol)與資料的程式 。(邏輯上的插座)

網絡程式設計網絡模型網絡通訊要素SocketSocket的UDP傳輸協定Socket(用戶端)和ServerSocket(服務端) URL類(get方法)相關知識點:遇見的問題:

建立發送端,接收端

建立資料包

調用socket的發送接收方法

關閉socket。

發送端與接收端是兩個獨立的運作程式。(類比于服務端和用戶端)

           此類表示用來發送和接收資料報包的套接字。

           資料報套接字是包投遞服務的發送或接收點。每個在資料報套接字上發送或接收的包都是單獨編址和路由的。從一台機器發送到另一台機器的多個包可能選擇不同的路由,也可能按不同的順序到達。

           在 datagramsocket 上總是啟用 udp 廣播發送。為了接收廣播包,應該将 datagramsocket 綁定到通配符位址。在某些實作中,将 datagramsocket 綁定到一個更加具體的位址時廣播包也可以被接收。

示例:<code>datagramsocket s = new datagramsocket(null);</code>

<code>       s.bind(new inetsocketaddress(8888));</code>

<code></code> 這等價于:<code>datagramsocket s = new datagramsocket(8888);</code> 兩個例子都能建立能夠在 udp 8888 端口上接收廣播的 datagramsocket。

              此類表示資料報包。

              資料報包用來實作無連接配接包投遞服務。每條封包僅根據該包中包含的資訊從一台機器路由到另一台機器。從一台機器發送到另一台機器的多個包可能選擇不同的路由,也可能按不同的順序到達。不對包投遞做出保證。

多次接收用戶端發來的資訊

192.168.1.255(最後的255表示這個域裡面的廣播位址,發給這個位址的資訊,在域裡面的人都能收到)

模拟聊天程式(出現綁定異常)

簡單連接配接示例代碼:

用戶端發送資訊給伺服器并接收伺服器發回來的資訊,伺服器接收用戶端發送的資訊并回複資訊給用戶端

小練習,用戶端發送文本給服務端,服務端把收到的文本轉成大寫後再發給用戶端

網絡版的上傳檔案

單人上傳圖檔

接收多人上傳圖檔或其他檔案的伺服器

          傳回一個 <code>urlconnection</code> 對象,它表示到 <code>url</code> 所引用的遠端對象的連接配接。

一、在學的過程中遇見過這樣一個問題,在f:盤下有一個test.java檔案

package lie14_1;

public class test {

 /**

  * @param args

  */

 public static void main(string[] args) {

  // todo auto-generated method stub

  system.out.println(11);

 }

}

當在cmd下運作javac test.java的時候,運作用過,但是用java test的時候報錯,最後發現是包的問題package lie14_1;把包删除就可以了。具體原因不詳。