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

C# 同步網路傳輸字串實作 (7/7):完整執行結果與 ASCII/UTF-8/Unicode 編碼對照

     編輯:關於C語言

執行輸出驗證

// Client
Client is running ...
Server Connected! 127.0.0.1:12662 --> 127.0.0.1:8500
Menu: S - Send, X - Exit
Input the message: Hello, I'm jimmy zhang.
Sent: Hello, I'm jimmy zhang.
Received: HELLO, I'M JIMMY ZHANG.

// Server
Server is running ...
Start Listening ...
Client Connected! 127.0.0.1:8500 <-- 127.0.0.1:12662
Reading data, 46 bytes ...
Received: Hello, I'm jimmy zhang.
Sent: HELLO, I'M JIMMY ZHANG.

伺服器將收到字串轉大寫回傳,客戶端顯示回應。

附錄:字串編碼位元組長度對照

Mode: ASCII, String: b, Buffer.Length: 1
Mode: ASCII, String: abcd, Buffer.Length: 4
Mode: ASCII, String: 乙, Buffer.Length: 1 (資料遺失,ASCII 不支援中文)
Mode: ASCII, String: 甲乙丙丁, Buffer.Length: 4 (資料遺失)

Mode: UTF8, String: b, Buffer.Length: 1
Mode: UTF8, String: abcd, Buffer.Length: 4
Mode: UTF8, String: 乙, Buffer.Length: 3
Mode: UTF8, String: 甲乙丙丁, Buffer.Length: 12

Mode: Unicode, String: b, Buffer.Length: 2
Mode: Unicode, String: abcd, Buffer.Length: 8
Mode: Unicode, String: 乙, Buffer.Length: 2
Mode: Unicode, String: 甲乙丙丁, Buffer.Length: 8

結論:網路傳輸建議統一使用 Encoding.Unicode (UTF-16LE) 或 Encoding.UTF8,避免中文亂碼;雙端編碼必須一致。

系列總結

同步範例僅供入門,實務上單一伺服器無法處理多用戶端並發,需引入多執行緒或非同步模型 (下階段主題)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved