隨手筆記之VC 七

2021-06-17 22:09:05 字數 2422 閱讀 2835

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...