C# 版本WebSocket 与 Socket

HTTP:超文本传输协议,首先它是一个协议,并且是基于TCP/IP协议基础之上的应用层协议。TCP/IP协议是传输层协议,主要解决数据如何在网络中传输,HTTP是应用层协议,主要解决如何包装数据。HTTP协议详细规定了浏览器与服务器之间相互通信的规则,是万维网交换信息的基础。HTTP是基于请求-响应形式并且是短连接,并且是无状态的协议。针对其无状态特性,在实际应用中又需要有状态的形式,因此一般会通过session/cookie技术来解决此问题。

Socket:Socket不属于协议范畴,而是一个调用接口(API),Socket是对TCP/IP协议的封装,通过调用Socket,才能使用TCP/IP协议。Socket连接是长连接,理论上客户端和服务器端一旦建立连接将不会主动断开此连接。Socket连接属于请求-响应形式,服务端可主动将消息推送给客户端。

 

1. 使用.NET4.5 自带的WebSocket

服务端:
var listener = new HttpListener();
listener.Prefixes.Add("http://*:8080/");
listener.Start();
var context = await listener.GetContextAsync();
var wsContext = await context.AcceptWebSocketAsync(null);
var ws = wsContext.WebSocket;
客户端:
var ws = new ClientWebSocket();
await ws.ConnectAsync(new Uri("ws://127.0.0.1:8080"), CancellationToken.None);

2. 使用 websocket-sharp dll提供的  WebSocket(支持.NET4.0)

客户端:

_caiNiaoWs = new WebSocket(WsUrl);
 _caiNiaoWs.OnMessage += (sender, e) => OnMessage(e.Data);
  _caiNiaoWs.Connect();

 3. 使用 Socket 类(支持.NET4.0)

http://blog.csdn.net/qq_29701359/article/details/53130050

posted on 2017-11-09 12:55  mtudou  阅读(7279)  评论(0编辑  收藏  举报