資源簡介
WebSocket服務(wù)器端+Html5客戶端,服務(wù)器端dotnet framework2.0,3.5,4.0,4.5都支持。

代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.Text;
using?System.Net.Sockets;
using?System.Net;
using?System.Threading;
using?System.Text.Regularexpressions;
using?System.Security.Cryptography;
namespace?WebSocket
{
????class?Program
????{
????????static?void?Main(string[]?args)
????????{
????????????int?port?=?10;
????????????byte[]?buffer?=?new?byte[1024];
????????????IPEndPoint?localEP?=?new?IPEndPoint(IPAddress.Any?port);
????????????Socket?listener?=?new?Socket(localEP.Address.AddressFamily?SocketType.Stream?ProtocolType.Tcp);
????????????try
????????????{
????????????????listener.Bind(localEP);
????????????????listener.Listen(10);
????????????????Console.WriteLine(“等待客戶端連接....“);
????????????????Socket?sc?=?listener.Accept();//接受一個連接
????????????????Console.WriteLine(“接受到了客戶端:“?+?sc.RemoteEndPoint.ToString()?+?“連接....“);
????????????????//握手
????????????????int?length?=?sc.Receive(buffer);//接受客戶端握手信息
????????????????sc.Send(PackHandShakeData(GetSecKeyAccetp(buffer?length)));
????????????????Console.WriteLine(“已經(jīng)發(fā)送握手協(xié)議了....“);
????????????????//接受客戶端數(shù)據(jù)
????????????????Console.WriteLine(“等待客戶端數(shù)據(jù)....“);
????????????????length?=?sc.Receive(buffer);//接受客戶端信息
????????????????string?clientMsg?=?AnalyticData(buffer?length);
????????????????Console.WriteLine(“接受到客戶端數(shù)據(jù):“?+?clientMsg);
????????????????//發(fā)送數(shù)據(jù)
????????????????int?num?=?0;
????????????????while?(true)
????????????????{
????????????????????num++;
????????????????????string?sendMsg?=?num.ToString()+“您好,“?+?clientMsg;
????????????????????Console.WriteLine(“發(fā)送數(shù)據(jù):““?+?sendMsg?+?“”?至客戶端....“);
????????????????????sc.Send(PackData(sendMsg));
????????????????????System.Threading.Thread.Sleep(3000);
????????????????}
????????????????//Console.WriteLine(“演示Over!“);
????????????}
????????????catch?(Exception?e)
????????????{
????????????????Console.WriteLine(e.ToString());
????????????}
????????}
????????///?
????????///?打包握手信息
????????///?
????????///?
????????///?
????????private?static?byte[]?PackHandShakeData(string?secKeyAccept)
????????{
????????????var?responseBuilder?=?new?StringBuilder();
????????????responseBuilder.Append(“HTTP/1.1?101?Switching?Protocols“?+?Environment.NewLine);
????????????responseBuilder.Append(“Upgrade:?websocket“?+?Environment.NewLine);
????????????responseBuilder.Append(“Connection:?Upgrade“?+?Environment.NewLine);
????????????responseBuilder.Append(“Sec-WebSocket-Accept:?“?+?secKeyAccept?+?Environment.NewLine?+?Environment.NewLine);
????????????//如果把上一行換成下面兩行,才是thewebsocketprotocol-17協(xié)議,但居然握手不成功,目前仍沒弄明白!
????????????//responseBuilder.Append(“Sec-WebSocket-Accept:?“?+?secKeyAccept?+?Environment.NewLine);
????????????//responseBuilder.Append(“Sec-WebSocket-Protocol:?chat“?+?Environment.NewLine);
????????????return?Encoding.UTF8.GetBytes(responseBuilder.ToString());
????????}
????????///?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????120??2018-10-27?16:04??WebSocket\WebSocket\app.config
?????文件???????7680??2018-10-27?17:16??WebSocket\WebSocket\bin\Debug\WebSocket.exe
?????文件????????120??2018-10-27?16:04??WebSocket\WebSocket\bin\Debug\WebSocket.exe.config
?????文件??????15872??2018-10-27?17:16??WebSocket\WebSocket\bin\Debug\WebSocket.pdb
?????文件??????14328??2018-10-27?17:22??WebSocket\WebSocket\bin\Debug\WebSocket.vshost.exe
?????文件????????120??2018-10-27?16:04??WebSocket\WebSocket\bin\Debug\WebSocket.vshost.exe.config
?????文件????????490??2009-06-11?05:14??WebSocket\WebSocket\bin\Debug\WebSocket.vshost.exe.manifest
?????文件???????2004??2018-10-27?16:11??WebSocket\WebSocket\bin\Debug\WebSocketClient.html
?????文件????????312??2018-10-27?17:22??WebSocket\WebSocket\obj\Debug\WebSocket.csproj.FileListAbsolute.txt
?????文件???????7680??2018-10-27?17:16??WebSocket\WebSocket\obj\Debug\WebSocket.exe
?????文件??????15872??2018-10-27?17:16??WebSocket\WebSocket\obj\Debug\WebSocket.pdb
?????文件???????7736??2018-10-27?17:16??WebSocket\WebSocket\Program.cs
?????文件???????1368??2018-10-27?16:03??WebSocket\WebSocket\Properties\AssemblyInfo.cs
?????文件???????2237??2018-10-27?16:04??WebSocket\WebSocket\WebSocket.csproj
?????文件????????917??2018-10-27?16:03??WebSocket\WebSocket.sln
????..A..H.?????17920??2018-10-27?17:26??WebSocket\WebSocket.suo
?????目錄??????????0??2018-10-27?16:03??WebSocket\WebSocket\obj\Debug\TempPE
?????目錄??????????0??2018-10-27?17:26??WebSocket\WebSocket\bin\Debug
?????目錄??????????0??2018-10-27?17:26??WebSocket\WebSocket\obj\Debug
?????目錄??????????0??2018-10-27?17:26??WebSocket\WebSocket\bin
?????目錄??????????0??2018-10-27?17:26??WebSocket\WebSocket\obj
?????目錄??????????0??2018-10-27?17:26??WebSocket\WebSocket\Properties
?????目錄??????????0??2018-10-27?17:26??WebSocket\WebSocket
?????目錄??????????0??2018-10-27?17:26??WebSocket
-----------?---------??----------?-----??----
????????????????94776????????????????????24
- 上一篇:html愛心頁面
- 下一篇:html最簡單的增刪改查實現(xiàn)方式
評論
共有 條評論