是的,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
方法从服务器接收数据。