tcp/udp ip 協議
應用層 à 處理網路應用
表示層 à 資料表示
會話層 à 主機間的通訊
傳輸層 à 端到端的鏈結 tcp/udp
網路層 à 定址和最短路勁 ip
資料鏈路層 à 介質訪問
物理層 à 二進位制傳輸
telnet 遠端登入協議。
ftp 檔案傳輸協議
http 超文字傳輸協議
dns 網域名稱服務 à解析網域名稱www.baidu.com
為ip位址。
smtp 簡單郵件傳輸協議
pop3 郵局協議
tcp協議 是面向連線的可靠傳輸協議,通訊時要三步握手來建立雙方的連線,
tcp 協議提供了資料的確認和數重傳的機制,保證了傳送的資料一定能夠到達
通訊的對方。
udp協議 是不連線,不可靠的協議,可以直接向乙個
ip位址傳送資料,但不保證對方能接受到資料,實時性較高。
tcp/ip 模型
應用層傳輸層
網路層網路介面層
套接字用於通訊區域中,是乙個抽象的概念,主要用於將通過套接字通訊的程序的共有的特性綜合在一起,套接字通常只與乙個區域的套接字交換資料,
window sockets 只支援乙個通訊的區域,網際域(
af_inet),
網路位元組順序
由於不同計算機上存放的資料位元組的順序不同,這樣傳送的資料後,即使接收方接受到資料,也有可能無法檢視到接受到的資料,所以在網路中不同的主機間進行通訊時要 統一採用 網路位元組順序。
tcp協議下的
c/s
模式服務端:
1. 建立套接字。 socket
2. 將套接字繫結到乙個本機的位址和埠上。 bind
3. 將套接字設為監聽模式,準備接受客戶請求。listen
4. 等待客戶請求後,接受請求,返回乙個新的對應於此次連線的套接字。accept
5. 用返回的新套接字與客戶端進行通訊 send/recv
6. 返回等待另乙個客戶請求。
7. 關閉套接字。
客戶端:
1. 請求連線伺服器所在主機的特定埠。
2. 連線成功後與伺服器進行資訊的通訊。
3. 關閉套接字。
udp協議下的
c/s
模式服務端:
1. 建立套接字。socket
2. 將套接字繫結到乙個本機的位址和埠上。 bind
3. 等待接受資料。recvfrom
4. 關閉套接字。
客戶端:
1. 建立套接字。 socket
2. 向伺服器傳送資料。sendto
3. 關閉套接字。
int wsastartup(word 版本號,
lpwsadata
乙個結構體指標);
socket(af_inet ,型別
->sock_stream / sock_dgram,
協議->
可以0)
返回乙個套接字
socket
型別,失敗的話可以通過
wsagetlasterror()
函式返回乙個invalid_socket值。
int bind( 套接字,套接字本地位址資訊,該位址結構的長度);
unsigned long inet_addr( 乙個字串指標
); 是將十進位制的
ip位址轉換為無符號長整形的數值。如果為
inaddr_any
時候,允許套接字向本級任何的
ip位址進行資料的交換,因為乙個本機可以有多個網絡卡就可能有多個
ip位址,用這個可以簡化。
char far *inet_ntoa( struct in_addr in); 相反返回乙個十進位制的
ip位址字串
int listen(套接字,允許監聽的個數);
socket accept(套接字,請求的客戶端
ip位址資訊和埠資訊,位址首席資訊官度);
int send(套接字,乙個字串指標儲存要傳遞的資料,這個字串大小,0);
int recv(套接字,字串指標儲存接受的資料,字串大小,
0);
int connect(套接字,請求連線的伺服器位址資訊,伺服器端位址的長度);
u_short htons (u_short hostshort); 主機位元組順序轉換為
tcp/ip
網路位元組順序
16位u_long htonl( u_long hostlong); 主機位元組順序轉換為
tcp/ip
網路位元組順序
32位
oracle隨手筆記
1.儲存過程中is和as沒區別檢視 用is 游標 用as 不能反過來,其他情況沒區別 2.trim是用來去除字串開頭和結尾的函式 用法 select trim leading trailing both 你要刪的東西 from 被刪的字串 test trim from dual both後面沒有引數...
C 隨手筆記
成員變數在使用初始化列表初始化時,與建構函式中初始化成員列表的順序無關,只與定義成員變數的順序有關。因為成員變數的初始化次序是根據變數在記憶體中次序有關,而記憶體中的排列順序早在編譯期就根據變數的定義次序決定了。這點在effectivec 中有詳細介紹。如果不使用初始化列表初始化,在建構函式內初始化...
MySql隨手筆記
1,acid 資料庫事務正常執行的四個基本要素 2,多表查詢的三種連線方式,2.1 交叉連線,表1cross join 表2。查詢兩張表的結果,不會對錶的結果過濾,使用場景很少。返回的結果集是兩張表的笛卡爾集,比如第一張表 有4條記錄,第二張表有4條記錄,即4 4 16條。2.2 內連線,selec...