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

C# 網路程式設計基礎 (2/2):Socket、TcpClient/TcpListener 與連線建立流程

     編輯:關於C語言

Socket 核心資訊

Socket 封裝雙向連線的兩組端點資訊:

  • 本地端點:本機 IP + 本機 Port
  • 遠端端點:對方 IP + 對方 Port

類比:IP = 電話號碼,Port = 分機號。同一 IP 可透過不同 Port 同時與多個遠端通訊。

.NET 封裝類別

Socket (底層)
   ├─ TcpListener:封裝 Bind/Listen/Accept,專用於伺服器端接受連線
   └─ TcpClient:封裝 Connect/Send/Receive,專用於用戶端發起連線與資料收發

TcpListener.AcceptTcpClient() 回傳 TcpClient,後續收發均由該 TcpClient 負責;TcpListener 持續監聽不變。

連線建立時序

  1. 伺服器:TcpListener.Start() 監聽 Port。
  2. 用戶端:TcpClient.Connect() 發起連線 (三向交握)。
  3. 伺服器:AcceptTcpClient() 返回新 TcpClient 代表此連線。
  4. 雙方透過各自的 TcpClient.GetStream() 進行全雙工資料收發。
  5. 發起連線方 (Client) 連線成功後無需再監聽,現有連線即可雙向通訊。

角色定義

  • Server (服務端):被動接受連線,使用 TcpListener。
  • Client (用戶端):主動發起連線,使用 TcpClient。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved