C# ClientWebSocket使用详细

        #region ClientWebSocket

        readonly ClientWebSocket _webSocket = new ClientWebSocket();
        readonly CancellationToken _cancellation = new CancellationToken();

        public async void WebSocket() {
            try {

                //建立连接
                var url = "ws://121.40.165.18:8800";

                await _webSocket.ConnectAsync(new Uri(url), _cancellation);

                var bsend = new byte[1024];

                await _webSocket.SendAsync(new ArraySegment<byte>(bsend), WebSocketMessageType.Binary, true, _cancellation); //发送数据

                while (true) {
                    var result = new byte[1024];

                    await _webSocket.ReceiveAsync(new ArraySegment<byte>(result), new CancellationToken());//接受数据

                    var lastbyte = ByteCut(result, 0x00);

                    var str = Encoding.UTF8.GetString(lastbyte, 0, lastbyte.Length);

                }

            } catch (Exception ex) {
                Console.WriteLine(ex.Message);
            }
        }

        #endregion

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
以下是使用C#中的ClientWebSocket类连接WebSocket服务的基本步骤: 1. 引用命名空间System.Net.WebSockets。 2. 创建一个ClientWebSocket实例。 3. 使用ConnectAsync方法连接WebSocket服务。 4. 使用SendAsync方法发送消息到WebSocket服务。 5. 使用ReceiveAsync方法接收WebSocket服务发送的消息。 6. 使用CloseAsync方法关闭WebSocket连接。 下面是一个简单的示例代码: ```csharp using System; using System.Net.WebSockets; using System.Threading; using System.Threading.Tasks; public class WebSocketClient { private ClientWebSocket _webSocket; public async Task ConnectAsync(Uri uri) { _webSocket = new ClientWebSocket(); await _webSocket.ConnectAsync(uri, CancellationToken.None); } public async Task SendAsync(string message) { var buffer = new ArraySegment<byte>(System.Text.Encoding.UTF8.GetBytes(message)); await _webSocket.SendAsync(buffer, WebSocketMessageType.Text, true, CancellationToken.None); } public async Task<string> ReceiveAsync() { var buffer = new ArraySegment<byte>(new byte[1024]); var result = await _webSocket.ReceiveAsync(buffer, CancellationToken.None); return System.Text.Encoding.UTF8.GetString(buffer.Array, 0, result.Count); } public async Task CloseAsync() { await _webSocket.CloseAsync(WebSocketCloseStatus.NormalClosure, string.Empty, CancellationToken.None); } } ``` 使用示例: ```csharp var client = new WebSocketClient(); await client.ConnectAsync(new Uri("ws://localhost:8080")); await client.SendAsync("Hello, WebSocket!"); var message = await client.ReceiveAsync(); Console.WriteLine(message); await client.CloseAsync(); ```
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值