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

BCB TServerSocket/TClientSocket 通訊程式設計完整指南

     編輯:關於C++

Borland C++Builder 的 TServerSocket 與 TClientSocket 封裝了 Windows Socket API,大幅簡化 TCP/IP 通訊程式開發。本文詳細說明關鍵屬性設定、事件處理流程與非阻塞/阻塞模式選擇。

伺服器端關鍵屬性

  • Active:啟動/停止監聽。
  • Port:監聽埠號 (>1024)。
  • ServerType:stNonBlocking (非阻塞,預設) 或 stThreadBlocking (執行緒阻塞,需自行管理執行緒)。
  • ThreadCacheSize:阻塞模式下的執行緒快取數。

客戶端關鍵屬性

  • Active:建立/斷開連線。
  • Host/Address:伺服器主機名或 IP。建議用 Address 避免 DNS 解析延遲。
  • Port:對應伺服器監聽埠。
  • ClientType:ctNonBlocking (預設) 或 ctBlocking。

伺服器端核心事件

事件觸發時機典型處理
OnClientConnect客戶端嘗試連線決定是否接受 (設 Accept 參數)
OnAccept連線成功建立連線可用,可收發資料
OnClientRead收到客戶端資料接收處理資料
OnClientWrite發送資料完成後續發送邏輯
OnClientDisconnect連線斷開清理資源、移除連線清單
OnClientError發生錯誤設 ErrorCode=0 抑制預設訊息,依 ErrorEvent 類型處理

客戶端核心事件

事件觸發時機典型處理
OnConnecting正在連線更新 UI 狀態
OnConnect連線成功可開始發送資料
OnRead收到伺服器資料接收處理
OnWrite發送完成後續邏輯
OnDisconnect連線斷開Active=false,需重連
OnError錯誤同伺服器端處理

開發建議

  • 非阻塞模式 (stNonBlocking/ctNonBlocking) 程式較簡單,事件驅動自動處理多連線。
  • 阻塞模式需自行建立執行緒處理每連線,適合簡單單連線場景。
  • 錯誤事件中設 ErrorCode = 0 可避免彈出英文錯誤對話框。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved