在现代网络应用中,WebSocket 技术因其全双工、低延迟的特性被广泛用于实时通信场景。而在 C# 开发中,使用 WebSocket 传输二进制数据(如图片、音频、自定义协议包等)是一项非常实用的技能。本文将手把手教你如何在 C# 中实现 WebSocket 的二进制数据传输,即使你是编程新手也能轻松上手。

WebSocket 协议支持两种数据帧类型:文本帧(UTF-8 编码)和二进制帧。当我们需要高效传输非文本数据(例如图像、加密数据、传感器原始数据等)时,使用二进制帧比将数据转为 Base64 字符串更节省带宽、性能更高。
在 C# 中,.NET 提供了 ClientWebSocket 和 WebSocket 类(位于 System.Net.WebSockets 命名空间),可以轻松处理二进制数据的发送与接收。
确保你的开发环境满足以下条件:
下面是一个使用 ClientWebSocket 向服务器发送二进制数据的完整示例:
using System;using System.Net.WebSockets;using System.Text;using System.Threading;using System.Threading.Tasks;namespace WebSocketBinaryDemo{ class Program { static async Task Main(string[] args) { var ws = new ClientWebSocket(); try { // 连接到 WebSocket 服务器(这里假设本地运行) await ws.ConnectAsync(new Uri("ws://localhost:8080"), CancellationToken.None); Console.WriteLine("已连接到 WebSocket 服务器。"); // 准备要发送的二进制数据(例如一个字节数组) byte[] binaryData = { 0x01, 0x02, 0x03, 0xFF, 0x7F }; // 发送二进制数据 await ws.SendAsync( new ArraySegment<byte>(binaryData), WebSocketMessageType.Binary, true, // endOfMessage CancellationToken.None ); Console.WriteLine("二进制数据已发送!"); } catch (Exception ex) { Console.WriteLine($"发生错误: {ex.Message}"); } finally { if (ws.State == WebSocketState.Open) await ws.CloseAsync(WebSocketCloseStatus.NormalClosure, "", CancellationToken.None); } } }}接收端同样需要判断消息类型是否为 WebSocketMessageType.Binary,然后读取缓冲区中的字节:
// 接收数据的循环var buffer = new byte[1024 * 4]; // 4KB 缓冲区while (ws.State == WebSocketState.Open){ var result = await ws.ReceiveAsync( new ArraySegment<byte>(buffer), CancellationToken.None ); if (result.MessageType == WebSocketMessageType.Binary) { // 提取实际接收到的数据 byte[] receivedData = new byte[result.Count]; Array.Copy(buffer, receivedData, result.Count); Console.WriteLine($"收到 {receivedData.Length} 字节的二进制数据。"); // 此处可对 receivedData 进行进一步处理(如保存为文件、解析协议等) } else if (result.MessageType == WebSocketMessageType.Close) { await ws.CloseAsync(WebSocketCloseStatus.NormalClosure, "", CancellationToken.None); break; }}endOfMessage == true。通过本教程,你已经掌握了在 C# 中使用 WebSocket 进行二进制数据传输的核心方法。无论是构建物联网设备通信、游戏同步系统,还是高性能 API 网关,这项技能都能为你提供强大支持。
记住关键词:C# WebSocket 二进制传输、WebSocket C# 教程、二进制数据通信 和 C# 网络编程,它们将帮助你在搜索引擎中快速找到相关资源。
动手实践是掌握技术的最佳方式,现在就创建你的第一个 WebSocket 二进制通信项目吧!
本文由主机测评网于2025-12-16发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025128399.html