網(wǎng)絡(luò)通信-----Socket

  • Socket:又稱套接字,底層要建立連接通道,通過套接字建立連接,向網(wǎng)絡(luò)發(fā)出應(yīng)答或請求

  • 套接字(socket)是通信的基石,是支持TCP/IP協(xié)議的網(wǎng)絡(luò)通信的基本操作單元。它是網(wǎng)絡(luò)通信過程中端點的抽象表示,包含進(jìn)行網(wǎng)絡(luò)通信必須的五種信息:連接使用的協(xié)議,本地主機(jī)的IP地址,本地進(jìn)程的協(xié)議端口,遠(yuǎn)地主機(jī)的IP地址,遠(yuǎn)地進(jìn)程的協(xié)議端口。

網(wǎng)絡(luò)上的兩個程序通過一個雙向的通信連接實現(xiàn)數(shù)據(jù)的交換,這個連接的一端稱為一個socket,建立socket連接至少需要一對套接字,一個運行于客戶端( ClientSocket),另一個運行于服務(wù)器端(ServerSocket).

  • web應(yīng)用程序,提供HTTP服務(wù),端口80,HTTP底層就是通過socket建立連接通信管道,實現(xiàn)數(shù)據(jù)傳輸,HTTP是一個TCP的傳輸協(xié)議(方式),一個安全可靠的協(xié)議
  • 數(shù)據(jù)庫應(yīng)用程序(MySQL是移動服務(wù)端的數(shù)據(jù)庫應(yīng)用程序,端口3306)
網(wǎng)絡(luò)通信要素:
  • ** IP地址:**尋找主機(jī)
  • 端口號:沒有就找不到程序,默認(rèn)為80,標(biāo)示進(jìn)程的邏輯地址(一個應(yīng)用程序就是一個進(jìn)程),有效端口(065535,實際不止這些,01024由系統(tǒng)使用保留,開發(fā)中建議使用1024以上的端口)
傳輸協(xié)議(用什么方式進(jìn)行交互):
  • TCP:傳輸控制協(xié)議
  • 建立連接(即建立的管道),
  • 建立之后數(shù)據(jù)傳輸大小不收限制
  • 通過3次握手完成連接,目的是為數(shù)據(jù)的安全可靠
  • 每次都要進(jìn)行連接,效率稍低(在通信雙方中任何一方主動關(guān)閉,連接之前,TCP連接都將被一直保持下去)
  • UDP:用戶數(shù)據(jù)報協(xié)議
  • 不需建立連接(eg:廣播),將數(shù)據(jù)及源和目的封裝成數(shù)據(jù)包
  • 不可靠,出現(xiàn)問題,不會有之前的數(shù)據(jù)
  • 數(shù)據(jù)大小有限制(64kb之內(nèi)),避免中間出現(xiàn)誤差,大量數(shù)據(jù)丟失
  • 速度快
socket通信流程:(需要客戶端,服務(wù)器端)

服務(wù)端將socket,--->bind(端口,來標(biāo)示當(dāng)前應(yīng)用程序),--->監(jiān)聽端口(客戶端請求連接[同時連接大量客戶端連接,會造成連接阻塞])--->accept(客戶端請求[建立連接])--->客戶端發(fā)請求(write)--->服務(wù)器端read--->處理請求后回應(yīng)數(shù)據(jù)(write操作)--->客戶端read數(shù)據(jù)--->客戶端結(jié)束連接---服務(wù)器接收斷開

socket通信流程.png

實現(xiàn)socket服務(wù)端監(jiān)聽

  1. C語言實現(xiàn)
  1. CocoeAsyncSocket(第三方框架)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 參考:http://www.2cto.com/net/201611/569006.html TCP HTTP UD...
    F麥子閱讀 2,976評論 0 14
  • 一: 網(wǎng)絡(luò)各個協(xié)議:TCP/IP、SOCKET、HTTP 網(wǎng)絡(luò)七層由下往上分別為物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層...
    iYeso閱讀 1,453評論 0 13
  • 和在云朵里醞釀已久的雨水一樣 我從不覺得自己聰慧 在一整片的大陸面前 總是以最笨拙的方式,直直的墜落 在云端思考的...
    蔣菱閱讀 184評論 2 3
  • 一、本月情境 7月著重于ISO9001-2015質(zhì)量體系貫標(biāo)外審和重點項目推進(jìn)。 7月天氣極端炎熱,鍛煉的動力有所...
    嚴(yán)哥閱讀 295評論 1 2
  • 第一次來到這里,本來是想和友人看花田的。不巧誤撞入向日葵花田,在景區(qū)的景圖分布中明明看到就是這里。原以為花田會是...
    我是一只沉默的魚閱讀 444評論 0 0