.net6 websocke客户端连接服务端,给出具体范例
时间: 2024-10-20 21:08:42 浏览: 27
c#、.NET6实现websocket协议服务端demo,完整清晰的解析和打包示例
4星 · 用户满意度95%
在 .NET 6 中,使用 WebSockets 进行客户端和服务端通信非常常见。WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,特别适合实时数据传输,比如在线聊天、游戏等。以下是一个简单的 C# 示例,展示了如何创建一个 .NET Core 的 WebSocket 客户端连接到一个静态服务器:
首先,确保已安装 `Microsoft.AspNetCore.WebSockets.Client` NuGet 包,可以在控制台应用中通过以下命令添加:
```powershell
dotnet add package Microsoft.AspNetCore.WebSockets.Client
```
然后,在你的客户端代码(例如 `Program.cs`)中,你可以这样创建并初始化 WebSocket 客户端:
```csharp
using System.Net.Http;
using System.Threading.Tasks;
using Microsoft.AspNetCore.WebSockets.Client;
public static async Task Main(string[] args)
{
var client = new ClientWebSocket();
try
{
await client.ConnectAsync(new Uri("wss://your-websocket-server.com/path"), CancellationToken.None);
// 发送消息到服务端
var message = "Hello, Server!";
var bytes = Encoding.UTF8.GetBytes(message);
await client.SendAsync(new ArraySegment<byte>(bytes), WebSocketMessageType.Text, true, CancellationToken.None);
// 接收服务端响应
byte[] buffer = new byte[1024];
int receivedMessageLength = await client.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);
string response = Encoding.UTF8.GetString(buffer, 0, receivedMessageLength);
Console.WriteLine($"Received from server: {response}");
// 关闭连接
await client.CloseAsync(WebSocketCloseStatus.NormalClosure, "", CancellationToken.None);
}
catch (Exception ex)
{
Console.WriteLine($"Error connecting to the server: {ex.Message}");
}
}
```
这个例子中,我们先创建了一个 `ClientWebSocket` 实例,然后连接到指定的WebSocket URL。接着发送一条消息,等待服务端响应,并在接收后关闭连接。
记住替换 `'wss://your-websocket-server.com/path'` 为实际的服务端地址和路径。如果你的服务器是自定义的,请确保它已经配置好WebSocket支持,并监听正确的URL。
阅读全文