tcp/ip
協議:udp
(user datagram protocol
):是一種不安全的面向無連線的協議,每乙個
packet
都有自己完整的**和目的資訊,所以並不能保證
packet
到達接收方的時間和準確性,每次傳送資料大小也限定在
64kb
以內。tcp
(transfer control protocol
):是一種安全的面向連線的協議。通過
tcp協議傳輸得到的是乙個順序的無差錯的資料流,傳送的資料大小沒有限定,因為他要保證資料的完整性和準確性,占用的計算機和網路資源比
udp高,所以效率不如
udp。
socket:
socket
就是為網路服務提供的一種機制
,網路通訊其實就是
socket
間的通訊
,通常用來實現客戶端與服務端的連線,連線的兩端都有乙個
socket
,資料在兩個
socket
之間是通過
io傳輸的。
udp傳輸過程(使用
datagramsocket
和datagrampacket類)
: 傳送端: 1
建立socket
服務datagramsocket ds = new datagramsocket(); 2
建立資料報
datagrampacket dp =
new datagrampacket(byte b,int length,inetaddress address,int port);
用來將長度為
length
的包傳送到指定的埠 3
通過呼叫
socket
物件的send()
方法將資料報傳送到目的地。
接收端:1建立
socket
服務並監聽乙個埠,因為要明確哪個埠進來的資料是這個接收端可以處理的
datagramsocket ds = new datagramsocket(int port); 2
建立乙個資料報用來儲存接受到的資料
datagrampacket dp = new datagrampacket(buf,buf.length);
3 呼叫
socket
物件的receive()方法,
將接收到的資料存放到資料報中 4
通過呼叫資料報中的方法獲得資料報中需要的內容,如
ip位址、資料長度、端
口號等。
tcp傳輸過程(使用
socket
和serversocket類)
: 客戶端: 1
建立客戶端
socket
服務,並去連線指定的服務端。
socket s = new socket(string host,int port);2通過
socket
物件的getoutputstream()
或getinputstream()
方法獲取
socket
流中的輸出輸出流物件。 3
通過輸入輸出流與服務端進行資料傳輸。 4
與服務端通訊結束後關閉
socket。
服務端: 1
建立服務端的
socket服務,
並監聽乙個埠,以獲取客戶端發來的資料。
serversocket ss = new serversocket(int port);
與客戶端的
port相同
2通過socket
物件的accept()
方法獲得連線進來的
socket物件
3通過socket
物件的getoutputstream()
或getinputstream()
方法獲得
socket
流中的輸入輸出流物件 4
通過輸入輸出流物件與客戶端進行資料傳輸。 5
客戶端訪問結束後關閉此客戶端。
傳智播客學習有感
來傳智播客學習幾個月了,學習的很差,為什麼呢,我曾經這麼回答過,如果乙個人曾經很輕鬆的賺過錢,然後某天他改行做程式設計了,那麼是一件很折磨人的事情,寫 絕對不是一件輕鬆的事情,很容易疲倦,也很容易煩躁不安,我在傳智播客學習了幾個月說真的學的很差,動手太差,只侷限於聽,導致的結果是做乙個簡單的html...
傳智播客mysql分頁的實現 傳智播客 分頁
整理了一宿,終於找到了頭緒,在頭腦還算清醒時,整理下分頁的筆記.我這個分頁用的是oracle的資料庫.他在查詢時涉及到了乙個偽列.table名為 employees.建立bean物件employee.屬性如下 private int employee id private string first ...
傳智播客學習筆記4 24
傳智播客學習筆記4.24 檢視中沒有資料 檢視中查詢語句儲存於資料字典中 如果通過檢視訪問資料,至少訪問系統兩次 實際工作時,需要站在使用者的角度去考慮 盡量不要對檢視進行dml操作 在檢視定義中,可以使用with read only選項來保證該檢視上不能進行dml操作 閃回技術 oracle 10...