c#中怎么通过websoket建立和服务器的连接,写出完整实例代码给我直接用
时间: 2024-10-22 13:06:10 浏览: 19
C#websocket.zip
在C#中,你可以使用System.Net.WebSockets命名空间提供的WebSocket类来建立WebSocket连接。下面是一个基本的实例代码,展示了如何创建一个WebSocket客户端连接到服务器:
首先,确保已经安装了Microsoft.AspNet.WebApi.Client NuGet包,因为它包含用于处理WebSocket的工具。
```csharp
using System;
using System.Net.WebSockets;
using System.Text;
class Program
{
static async Task Main(string[] args)
{
// WebSocket服务器地址
string url = "ws://your-websocket-server.com/endpoint";
// 创建一个新的WebSocket连接
using (var client = new ClientWebSocket())
{
await client.ConnectAsync(new Uri(url), CancellationToken.None);
try
{
// 发送消息
string message = "Hello from client";
var encodedMessage = Encoding.UTF8.GetBytes(message);
await client.SendAsync(new ArraySegment<byte>(encodedMessage), WebSocketMessageType.Text, true, CancellationToken.None);
// 接收服务器的消息
var buffer = new ArraySegment<byte>();
while (true)
{
WebSocketReceiveResult result = await client.ReceiveAsync(buffer, CancellationToken.None);
if (result.MessageType == WebSocketMessageType.Close)
break;
string serverResponse = Encoding.UTF8.GetString(buffer.Array, buffer.Offset, buffer.Count);
Console.WriteLine($"Received from server: {serverResponse}");
}
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
}
Console.WriteLine("WebSocket connection closed");
}
}
```
在这个例子中,我们创建了一个WebSocket连接,发送一条消息,然后进入无限循环接收服务器的响应直到收到关闭消息。请注意替换`url`为你实际的WebSocket服务地址。
阅读全文