资源简介
C# WebSocket 服务端和网页端示例,初学者必备!
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Net;
using System.Net.Sockets;
using System.Text.Regularexpressions;
using System.Security.Cryptography;
namespace WebSocketServer
{
class Program
{
static void Main(string[] args)
{
int port = 1818;
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(“已经发送握手协议了....“);
//接受客户端数据
Console.WriteLine(“等待客户端数据....“);
length = sc.Receive(buffer);//接受客户端信息
string clientMsg = AnalyticData(buffer length);
Console.WriteLine(“接受到客户端数据:“ + clientMsg);
//发送数据
string sendMsg = “您好,“ + clientMsg;
Console.WriteLine(“发送数据:““ + sendMsg + “” 至客户端....“);
sc.Send(PackData(sendMsg));
Console.WriteLine(“演示Over!“);
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
}
///
/// 打包握手信息
///
/// Sec-WebSocket-Accept
/// 数据包
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协议,但居然握手不成功,目前仍没弄明白!
//responseBuilder.Append(“Sec-WebSocket-Accept: “ + secKeyAccept + Environment.NewLine);
//responseBuilder.Append(“Sec-WebSocket-Protocol: chat“ + Environment.NewLine);
return Encoding.UTF8.GetBytes(responseBuilder.ToString());
}
///
/// 生成Sec-WebSocket-Accept
///
/// 客户端握手信息
/// Sec-WebSock
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1593 2016-03-02 15:35 websocketclient.html
目录 0 2016-03-02 15:39 WebSocketServer\
目录 0 2016-03-02 15:39 WebSocketServer\bin\
目录 0 2016-03-02 15:39 WebSocketServer\bin\Debug\
文件 7680 2016-03-02 15:32 WebSocketServer\bin\Debug\WebSocketServer.exe
文件 17920 2016-03-02 15:32 WebSocketServer\bin\Debug\WebSocketServer.pdb
文件 11600 2016-03-02 15:33 WebSocketServer\bin\Debug\WebSocketServer.vshost.exe
文件 490 2010-03-17 22:39 WebSocketServer\bin\Debug\WebSocketServer.vshost.exe.manifest
目录 0 2016-03-02 15:39 WebSocketServer\obj\
目录 0 2016-03-02 15:39 WebSocketServer\obj\x86\
目录 0 2016-03-02 15:39 WebSocketServer\obj\x86\Debug\
文件 5869 2016-03-02 15:32 WebSocketServer\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache
目录 0 2016-03-02 09:50 WebSocketServer\obj\x86\Debug\TempPE\
文件 312 2016-03-02 15:33 WebSocketServer\obj\x86\Debug\WebSocketServer.csproj.FileListAbsolute.txt
文件 7680 2016-03-02 15:32 WebSocketServer\obj\x86\Debug\WebSocketServer.exe
文件 17920 2016-03-02 15:32 WebSocketServer\obj\x86\Debug\WebSocketServer.pdb
文件 7584 2016-03-02 15:32 WebSocketServer\Program.cs
目录 0 2016-03-02 15:39 WebSocketServer\Properties\
文件 1362 2016-03-02 09:50 WebSocketServer\Properties\AssemblyInfo.cs
文件 2451 2016-03-02 09:52 WebSocketServer\WebSocketServer.csproj
- 上一篇:学生宿舍管理系统设计
- 下一篇:gps时间转换268436
相关资源
- 基于C#的洗衣管理系统
- c# socket demo 已经封装成共通
- C#根据月份和订票数量决定机票价格的
- C#Excel大量数据快速导入数据库
- C#简易WebSocket通信(非服务器实现)
- C# Winform 嵌入Google浏览器 Chrome 与JS交
- 《Unity5实战使用C#和Unity开发多平台游
- C# winform ATM-自动取款机模拟软件设计
- C# SQL教师信息管理系统
- C# 做的WINDOWS窗体程序-简易计算器
- C#完成的个人理财系统
- C#AJAX
- C#基于Halcon实现Basler相机采图SDK
- C#引入Redis时所需四个DLL
- C#获取usb设备VID和PID
- C#实现复数类,包括加减乘除乘方开方
- C#图像二值化代码
- 用遗传算法/模拟退火算法 求解旅行商
- 基于C#开发的图片处理工具
- C#简单工厂模式计算器
- C#SerialPort通信详细介绍
- 用C#窗体画一个可以指定角度的倾斜椭
- C# 实现贪吃蛇小游戏的设计编写
- winform窗体实现验证码功能
- C# winfrom窗体显示百度地图
- C#调用webservice查询实时天气
- C# 显示图片并且可以缩放和描绘矩形
- C#操作excel 类库
- Web程序设计—— ASP.NET实用网站开发课
- 测量程序设计,坐标正反算,方位角
评论
共有 条评论