只撑持win8以上体系和windows server2012以上体系 近来在研讨视频传输给浏览器,然后利用H5标签解码。视频流接纳websocket传输。以是研讨了一下C#的websocket。 起首利用HttpListener停止侦听,HttpListener监听需求启动***权限才气运转,大概注册该端口,注册以下: 已***身份运转cmd.exe 输出上面两个号令 netsh http delete urlacl url=http://127.0.0.1:8080/ netsh http add urlacl url=http://127.0.0.1:8080/ user=dell *******************websocket服务端**************************************** 第一步:创立HttpListener类,并启动监听: var listener = new HttpListener; listener.Prefixes.Add("http://10.10.13.140:8080/"); listener.Start; 第二步:等候毗连 var context = listener.GetContext; 第三步:领受websocket var wsContext = await context.AcceptWebSocketAsync(null); var ws = wsContext.WebSocket; Console.WriteLine("WebSocket connect"); 第四步:开端异步领受数据 //领受数据 var wsdata = await ws.ReceiveAsync(abuf, cancel); Console.WriteLine(wsdata.Count); byte[] bRec = new byte[wsdata.Count]; Array.Copy(buf, bRec, wsdata.Count); Console.WriteLine(Encoding.Default.GetString(bRec)); 第五步:开释资本 //留意,利用完,记得开释,否则会有内存走漏 ws.Dispose; *******************websocket客户端**************************************** 这里利用ClientWebSocket类停止 第一步:创立ClientWebSocket ClientWebSocket webSocket = new ClientWebSocket; 第二步:成立websocket毗连 await webSocket.ConnectAsync(new Uri("ws://10.10.13.140:8080/"), cancellation); Console.WriteLine(111); 第三步:发送数据 //发送数据 await webSocket.SendAsync(new ArraySegment //开释资本 webSocket.Dispose; 为了便利各人进修,收拾整顿了一下服务端和客户端的代码,接纳C# net4.5 vs2017开辟情况 毗连以下: 点击翻开链接 *************--------------备注---------------****************************************** 发明win7下没法运转,参考 https://msdn.microsoft.com/en-us/library/system.net.websockets.clientwebsocket(v=vs.110).aspx 枢纽部门以下: Some of the classes and class elements in the System.Net.WebSockets namespace are supported on Windows 7, Windows Vista SP2, and Windows Server 2008. However, the only public implementations of client and server WebSockets are supported on Windows 8 and Windows Server 2012. The class elements in the System.Net.WebSockets namespace that are supported on Windows 7, Windows Vista SP2, and Windows Server 2008 are abstract class elements. This allows an application developer to inherit and extend these abstract class classes and class elements with an actual implementation of client WebSockets. 本文仅代表作者个人概念,不代表巨推链平台发声,对文章概念有疑义请先联络作者自己停止修正,若内容不法请联络平台***,邮箱cxb5918@163.com。更多区块链资讯,请到百万区块链发烧友会萃平台赤壁资讯网进修区块链手艺请到www.zxhsh.com (责任编辑:鼎盛军事网) |