OC socket簡釋

1.socket是什么

socket又稱套接字,網(wǎng)絡(luò)上的請求就是通過socket來建立連接然后互相傳輸信息;而網(wǎng)絡(luò)上的兩個程序之間的通信是通過一個雙向的通信連接實現(xiàn)數(shù)據(jù)的交換,即這個連接的任意一端稱為一個socket。通常應(yīng)用程序也是通過socket向網(wǎng)絡(luò)發(fā)請求或者網(wǎng)絡(luò)應(yīng)答。

2.應(yīng)用程序網(wǎng)絡(luò)通信的基礎(chǔ)

網(wǎng)絡(luò)由下往上分為:物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會話層、表示層和應(yīng)用層。

a.ip地址(網(wǎng)絡(luò)層)

上網(wǎng)設(shè)備的唯一標(biāo)識符(即網(wǎng)絡(luò)上的通信地址,就像身份證上的家庭地址)

b.端口號

用于同一臺上網(wǎng)設(shè)備中標(biāo)識不同程序?qū)?yīng)進(jìn)程的邏輯地址;注意:有效端口:0~65535,其中0~1024由系統(tǒng)使用或者保留端口,開發(fā)中建議使用1024以上的端口;如:mysql數(shù)據(jù)庫常用的3307等。

c.傳輸協(xié)議(傳輸層)

傳輸協(xié)議顧名思義就是用什么樣的方式進(jìn)行信息交互,即通信的規(guī)則;常見協(xié)議:TCP,UDP

TCP(傳輸控制協(xié)議)

建立連接,形成傳輸數(shù)據(jù)的通道

在連接中進(jìn)行大數(shù)據(jù)傳輸(數(shù)據(jù)不受限制)

通過三次握手完成連接,是可靠協(xié)議,安全送達(dá)

必須建立連接,效率會稍低

TCP連接的三次握手

1.第一次握手:客戶端發(fā)送syn包(syn=j)到服務(wù)器,并進(jìn)入SYN_SEND狀態(tài),等待服務(wù)器確認(rèn);

2.第二次握手:服務(wù)器收到syn包,必須確認(rèn)客戶的SYN(ack=j+1),同時自己也發(fā)送一個SYN包(syn=k),即SYN+ACK包,此時服務(wù)器進(jìn)入SYN_RECV狀態(tài);

3.第三次握手:客戶端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認(rèn)包ACK(ack=k+1),此包發(fā)送完畢,客戶端和服務(wù)器進(jìn)入ESTABLISHED狀態(tài),完成三次握手。

UDP(用戶數(shù)據(jù)報協(xié)議)

將數(shù)據(jù)及源和目的封裝成數(shù)據(jù)包中,不需要建立連接

每個數(shù)據(jù)報的大小限制在64K之內(nèi)

因為無需連接,因此是不可靠協(xié)議

不需要建立連接,速度快

D.數(shù)據(jù)以什么格式傳輸(表示層和應(yīng)用層

常用應(yīng)用層協(xié)議有:HTTP,XMPP等

3.socket的應(yīng)用


socket應(yīng)用通信流程圖

代碼(應(yīng)用CocoaAsyncSocket框架):

Dome1(模擬取款機(jī)):https://github.com/tangbinbinM/socket-

Dome2(模擬微信正在輸入狀態(tài)):https://github.com/tangbinbinM/socket-2

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 簡介 用簡單的話來定義tcpdump,就是:dump the traffic on a network,根據(jù)使用者...
    保川閱讀 6,079評論 1 13
  • 1、TCP狀態(tài)linux查看tcp的狀態(tài)命令:1)、netstat -nat 查看TCP各個狀態(tài)的數(shù)量2)、lso...
    北辰青閱讀 9,719評論 0 11
  • 一: 網(wǎng)絡(luò)各個協(xié)議:TCP/IP、SOCKET、HTTP 網(wǎng)絡(luò)七層由下往上分別為物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層...
    iYeso閱讀 1,510評論 0 13
  • 參考:http://www.2cto.com/net/201611/569006.html TCP HTTP UD...
    F麥子閱讀 3,069評論 0 14
  • 你是不是一天忙上忙下,結(jié)果晚上回家發(fā)現(xiàn)今天沒干成啥事;你是不是整天各種刷朋友圈,各種點贊回復(fù),結(jié)果把正事給耽誤了;...
    帝天宇閱讀 818評論 16 33

友情鏈接更多精彩內(nèi)容