首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

Socket 編程與線程模型(三):Socket 核心原理、無連接收發流程、多點通訊與廣播機制

     編輯:關於.NET

Socket 核心原理

Socket 原理圖

  • Socket 為特殊 I/O,建立後不能直接讀寫,**必須綁定地址**。
  • 綁定地址 = 本地接收地址 (Read Address)。
  • 發送地址 (Write Address) 可任意變換,不綁定於 Socket。

無連接收發流程 (UDP)

無連接 Socket

  1. 接收端 (Server):socket1 + bind(sockaddr1) → recvfrom() 讀取。
  2. 發送端 (Client):socket2 + sendto(sockaddr1, data) → 隱式綁定本地 sockaddr2 (接收)。
  3. 回覆:Server recvfrom() 取得 Client sockaddr2 → sendto(sockaddr2, reply) (可復用 socket1)。

Client 亦可 bind() 顯式指定 sockaddr2,但不推薦。

多點通訊與廣播

無連接多點通訊

  • 單一 Server Socket 服務多 Client:Server 綁定單一接收地址,多 Client 發送,Server 透過 recvfrom 取得各 Client 地址,回覆時以同一 Socket 分別 sendto。
  • Socket 僅能 bind 一次:Client 首次 sendto 觸發隱式綁定,後續不變;多 Server 接收到的來源地址一致。
  • 廣播:sendto 目標地址設為廣播地址即與綁定/函數無關。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved