using System;
using System.Net.WebSockets;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
class Program
{
private static async Task ClientWebSocketExample()
{
// 创建一个客户端 WebSocket 实例
using (ClientWebSocket webSocket = new ClientWebSocket())
{
// 连接到指定的 WebSocket 服务器 URL
await webSocket.ConnectAsync(new Uri("ws://echo.websocket.org"), CancellationToken.None);
Console.WriteLine("Connected to WebSocket server");
// 准备发送消息
string message = "Hello, WebSocket!";
byte[] sendBuffer = Encoding.UTF8.GetBytes(message);
// 发送消息到服务器
await webSocket.SendAsync(new ArraySegment<byte>(sendBuffer), WebSocketMessageType.Text, true, CancellationToken.None);
Console.WriteLine("Message sent: " + message);
// 接收服务器返回的消息
byte[] receiveBuffer = new byte[1024 * 4];
WebSocketReceiveResult receiveResult = await webSocket.ReceiveAsync(new ArraySegment<byte>(receiveBuffer), CancellationToken.None);
// 将接收到的消息从字节数组转换为字符串并输出
string echoMessage = Encoding.UTF8.GetString(receiveBuffer, 0, receiveResult.Count);
Console.WriteLine("Message received: " + echoMessage);
}
}
static async Task Main(string[] args)
{
await ClientWebSocketExample();
}
}
创建 WebSocket 客户端实例:
ClientWebSocket 类来创建一个 WebSocket 客户端实例。连接到 WebSocket 服务器:
ConnectAsync 方法连接到指定的 WebSocket 服务器 URL。这里的示例使用的是 ws://echo.websocket.org,这是一个公共的测试 WebSocket 服务器。发送消息:
SendAsync 方法发送消息到服务器。接收消息:
ReceiveAsync 方法接收来自服务器的消息,并将其从字节数组转换为字符串进行输出。异步处理:
await 和 async),以确保不会阻塞主线程。资源管理:
using 语句确保在使用完 WebSocket 后正确释放资源。这个示例展示了如何使用 C# 中的 ClientWebSocket 类来创建一个简单的 WebSocket 客户端,连接到服务器,发送和接收消息。
上一篇:c# hmacsha256
下一篇:c#序列化
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站