ClientWebSocket

DotNet类库的ClientWebSocket本身并不复杂,但是它需要Dotnet4.5或以上,以及操作系统Windows8或以上


using  System;
using  System.Net.WebSockets;
using  System.Text;
using  System.Threading;
 
class  Client
{
     static  void  Main( string [] args)
     {
         var client =  new  ClientWebSocket();
         client.ConnectAsync( new  Uri( "ws://echo.websocket.org" ), CancellationToken.None).Wait();
         //client.ConnectAsync(new Uri("ws://localhost:4567/ws/"), CancellationToken.None).Wait();
         StartReceiving(client);
 
         string  line;
         while ((line = Console.ReadLine()) !=  "exit" )
         {
             var array =  new  ArraySegment< byte >(Encoding.UTF8.GetBytes(line));
             client.SendAsync(array, WebSocketMessageType.Text,  true , CancellationToken.None);
         }
     }
 
     static  async  void  StartReceiving(ClientWebSocket client)
     {
         while  ( true )
         {
             var array =  new  byte [4096];
             var result = await client.ReceiveAsync( new  ArraySegment< byte >(array), CancellationToken.None);
             if  (result.MessageType == WebSocketMessageType.Text)
             {
                 string  msg = Encoding.UTF8.GetString(array, 0, result.Count);
                 Console.ForegroundColor = ConsoleColor.DarkBlue;
                 Console.WriteLine( "--> {0}" , msg); 
                 Console.ForegroundColor = ConsoleColor.DarkGray;
             }
         }
     }
}

一、调用ConnectAsync进行连接(感谢例子中使用的websocket.org的免费回声服务)。
二、用ReceiveAsync进行接收,用SendAsync进行发送。


DotNet的WebSocket依赖于底层的http.sys。因此需要操作系统Win8或以上的支持 。
如果你要在Win7等系统上用,则要自己用Socket做,或者用第三方的类库。


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值