国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Socket套接字的原理說明

嵌入式應用開發 ? 來源:嵌入式應用開發 ? 作者:嵌入式應用開發 ? 2022-06-18 19:16 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

應用層通過傳輸層進行數據通信時,TCP和UDP會遇到同時為多個應用程序進程提供并發服務的問題。多個TCP連接或多個應用程序進程可能需要 通過同一個TCP協議端口傳輸數據。為了區別不同的應用程序進程和連接,許多計算機操作系統為應用程序與TCP/IP協議交互提供了稱為套接字 (Socket)的接口,區分不同應用程序進程間的網絡通信和連接。

生成套接字主要有3個參數:通信的目的IP地址、使用的傳輸層協議(TCP或UDP)和使用的端口號。Socket原意是“插座”。通過將這3個參數結合起來,與一個“插座”Socket綁定,應用層就可以和傳輸 層通過套接字接口,區分來自不同應用程序進程或網絡連接的通信,實現數據傳輸的并發服務。

Socket以看成在兩個程序進行通訊連接中的一個端點,一個程序將一段信息寫入Socket中,該Socket將這段信息發送給另外一個Socket中,使這段信息能傳送到其他程序中。

pYYBAGKts-eAKn0ZAAD_l5ZPZxg590.png

Host A上的程序A將一段信息寫入Socket中,Socket的內容被Host A的網絡管理軟件訪問,并將這段信息通過Host A的網絡接口卡發送到Host B,Host B的網絡接口卡接收到這段信息后,傳送給Host B的網絡管理軟件,網絡管理軟件將這段信息保存在Host B的Socket中,然后程序B才能在Socket中閱讀這段信息。

要通過互聯網進行通信,至少需要一對套接字,一個運行于客戶機端,稱之為ClientSocket,另一個運行于服務器端,稱之為serverSocket。
根據連接啟動的方式以及本地套接字要連接的目標,套接字之間的連接過程可以分為三個步驟:服務器監聽,客戶端請求,連接確認。
服務器監聽:是服務器端套接字并不定位具體的客戶端套接字,而是處于等待連接的狀態,實時監控網絡狀態。

客戶端請求:是指由客戶端的套接字提出連接請求,要連接的目標是服務器端的套接字。為此,客戶端的套接字必須首先描述它要連接的服務器的套接字,指出服務器端套接字的地址和端口號,然后就向服務器端套接字提出連接請求。

連 接確認:是指當服務器端套接字監聽到或者說接收到客戶端套接字的連接請求,它就響應客戶端套接字的請求,建立一個新的線程,把服務器端套接字的描述發給客 戶端,一旦客戶端確認了此描述,連接就建立好了。而服務器端套接字繼續處于監聽狀態,繼續接收其他客戶端套接字的連接請求。

socket通信流程:

1、服務器根據地址類型(ipv4,ipv6)、socket類型、協議創建socket
2、服務器為socket綁定ip地址和端口號
3、服務器socket監聽端口號請求,隨時準備接收客戶端發來的連接,這時候服務器的socket并沒有被打開
4、客戶端創建socket
5、客戶端打開socket,根據服務器ip地址和端口號試圖連接服務器socket
6、服務器socket接收到客戶端socket請求,被動打開,開始接收客戶端請求,直到客戶端返回連接信息。這時候socket進入阻塞狀態,所謂阻塞即accept()方法一直到客戶端返回連接信息后才返回,開始接收下一個客戶端諒解請求
7、客戶端連接成功,向服務器發送連接狀態信息
8、服務器accept方法返回,連接成功
9、客戶端向socket寫入信息
10、服務器讀取信息
11、客戶端關閉
12、服務器端關閉

審核編輯:符乾江

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • TCP
    TCP
    +關注

    關注

    8

    文章

    1425

    瀏覽量

    83516
  • 套接字
    +關注

    關注

    0

    文章

    5

    瀏覽量

    2065
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    輕松掌握——LuatOS socket基礎知識和應用開發

    對于剛接觸LuatOS開發的工程師而言,實現設備聯網往往是第一個重要目標,而Socket編程正是實現這一目標的核心技術路徑。本文以循序漸進的方式,帶領讀者從最基礎的Socket概念入手,逐步掌握在
    的頭像 發表于 01-28 20:07 ?177次閱讀
    輕松掌握——LuatOS  <b class='flag-5'>socket</b>基礎知識和應用開發

    socket是什么

    Socket(套接)是計算機網絡中的一個概念,它指示了一個可以進行網絡通信的軟件端點。通過使用Socket,計算機程序可以通過網絡進行通信。Soc
    發表于 12-03 08:27

    rtthread v5.0.1 , at socket使用select函數不能監控多個socket fd的問題,怎么解決?

    我最近使用at socket ,at device 組件創建tcpclient,使用select函數實現,發現select只能監控一個socket fd,監控兩個socket fd就不能正常接收
    發表于 10-13 06:05

    ESP8266 socket通信,串口溢出怎么解決?

    1、硬件平臺:原子精英板 stm32f103zet6+esp8266 開發板作為client,網絡調試助手模擬server 學習研究AT SOCKET有一段時間了,之前逛論壇提問解決了一些問題。遇到
    發表于 09-28 13:42

    alloc_socket在不斷創建socket時會不斷新建信號量和互斥鎖,導致內存泄漏,怎么解決?

    alloc_socket在不斷創建socket時會不斷新建信號量和互斥鎖,導致內存泄漏。 修改前: static struct wiz_socket *alloc_socket(vo
    發表于 09-10 08:22

    請問at_device不用at socket能使用bsd socket嗎?

    at_device不用at socket能使用bsd socket嗎?
    發表于 09-10 08:04

    【HZ-RK3568開發板免費體驗】基于 Select Poll的TCP發服務器

    模型: socket(...); // 創建套接 bind(...);// 綁定 listen(...); // 監聽 while(1) { if(select(...) > 0
    發表于 08-19 22:01

    GraniStudio : TCP/IP(Socket)協議深度剖析

    Socket)客戶端與服務器模塊,通過高度封裝的可視化功能,將復雜的套接通信邏輯轉化為簡單的 “拖拽式” 操作,為工業用戶構建穩定、高效的網絡通信系統提供了強大支撐。本文將從技術原理、功能實現、應用場景三個維度,深入解析 G
    的頭像 發表于 08-03 22:20 ?1193次閱讀
    GraniStudio : TCP/IP(<b class='flag-5'>Socket</b>)協議深度剖析

    【嘉楠堪智K230開發板試用體驗】網絡收發信息

    。 簡單來說,Socket抽象層介于傳輸層和應用層之間,跟TCP/IP并沒有必然的聯系。Socket編程接口在設計的時候,就希望也能適應其他的網絡協議。 套接
    發表于 07-13 08:13

    01studio 1.2.2 01studio 1.2.0鏡像版本 socket無法使用怎么解決?

    (ai)addr = ai[0][-1]# 獲取第一個地址的sockaddr# 創建并連接套接s = socket.socket(socket.AF_INET,
    發表于 06-06 08:04

    CYUSB2014-BZXC USB端點編號的對應關系是什么?

    你好客服, 我對 CYUSB2014-BZXC 有疑問。 應用說明(AN68829)第 6 頁解釋了線程和套接的概念,但我不明白它們如何與 USB 端點編號相對應。 既然 CYUSB2014 支持 32 個端點,那么邏輯插座
    發表于 05-21 06:14

    FX3 Socket緩沖區切換的最大時間是多少?

    中說“套接在填充或清空 DMA 緩沖區后,需要一段有限的時間(最多幾微秒)才能從一個 DMA 描述符切換到另一個 DMA 描述符”(第 14 頁)并且“如果外部外圍設備在套接從內存
    發表于 05-16 07:51

    為什么cyu3socket.c中的CyBool_t CyU3PDmaSocketIsValid (uint16_t sckId) 使CY_U3P_CPU_SOCKET_PROD無效?

    指定以下 DAM IP 和套接
    發表于 05-13 07:26

    CPU Socket的基本結構和工作原理

    CPU Socket是連接中央處理單元(CPU)與計算機主板之間的關鍵部件,它充當著傳遞電信號、電源和散熱等多重功能的樞紐。在整個計算機系統中,CPU Socket的作用至關重要,尤其在高性能計算
    的頭像 發表于 05-08 17:14 ?2429次閱讀

    在KaihongOS應用開發中,如何利用Socket進行數據傳輸

    TCPSocketServer 對象。 綁定本地 IP 地址和端口,監聽并接受與此套接建立的客戶端 TCPSocket 連接。 訂閱 TCPSocketServer 的 connect 事件,用于監聽客戶端的連接
    發表于 05-08 07:25