温馨提示×

c# clientwebsocket能发数据吗

c#
小樊
85
2024-11-22 21:52:01
栏目: 编程语言

是的,C# ClientWebSocket 可以发送数据。ClientWebSocket 是一个基于 .NET Framework 的类,用于与 WebSocket 服务器进行通信。以下是一个简单的示例,展示了如何使用 ClientWebSocket 发送和接收数据:

using System;
using System.Net.WebSockets;
using System.Threading.Tasks;

namespace WebSocketClient
{
    class Program
    {
        static async Task Main(string[] args)
        {
            // 创建一个 WebSocket 连接
            using (ClientWebSocket webSocket = new ClientWebSocket())
            {
                // 连接到 WebSocket 服务器
                Uri serverUri = new Uri("ws://your-websocket-server-url");
                await webSocket.ConnectAsync(serverUri, CancellationToken.None);

                // 发送数据到服务器
                string message = "Hello, WebSocket Server!";
                byte[] messageBytes = System.Text.Encoding.UTF8.GetBytes(message);
                await webSocket.SendAsync(new ArraySegment<byte>(messageBytes), WebSocketMessageType.Text, true, CancellationToken.None);

                // 从服务器接收数据
                byte[] buffer = new byte[1024 * 4];
                WebSocketReceiveResult result;
                do
                {
                    result = await webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);
                    string receivedMessage = System.Text.Encoding.UTF8.GetString(buffer, 0, result.Count);
                    Console.WriteLine($"Received: {receivedMessage}");
                } while (!result.CloseStatus.HasValue);
            }
        }
    }
}

在这个示例中,我们首先创建了一个 ClientWebSocket 实例,然后连接到 WebSocket 服务器。接着,我们将一条消息转换为字节数组并使用 SendAsync 方法发送给服务器。最后,我们使用 ReceiveAsync 方法从服务器接收数据。

0