资源简介
MFC写的websocket,支持最新chrome 25版。
资源含有工程原文件和可执行程序,由VS2010版开发环境开发。

代码片段和文件信息
#include “char_trans_coding.h“
#include “stdafx.h“
#include
#include “mybase64.h“
#include “SHA1ACT.h“
CString ShowChar(unsigned char * recvBufint radixint len)
{
// char * result=(char *)malloc(1024);
// memset(result01024);
CString result;
char format[4];
switch(radix)
{
case(10):
memcpy(format“%d “4);
break;
case 16:
memcpy(format“%x “4);
break;
}
CString temp;
for(int i=0;i {
temp.Format(formatrecvBuf[i]);
result+=temp;
}
return result;
}
char * websocket_parity(CString code)//请在调用后free
{
char *result=(char *)malloc(1024);
memset(result01024);
int startend;
start=code.Find((TCHAR*)“Key: “);
start+=5;
code=code.Mid(start24);
code+=“258EAFA5-E914-47DA-95CA-C5AB0DC85B11“;
unsigned long len=41;
char *_result=BitSHA1(code);
_result=gEncbase64(_result20&len);
sprintf(result“HTTP/1.1 101 Switching Protocols\r\nUpgrade: websocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: %s\r\n\r\n“_result);
return result;
}
char * AnalyticData(char * recBytes int recByteLength)//请在调用后free掉返回值
{
if (recByteLength < 2) return NULL;
bool fin = (recBytes[0] & 0x80) == 0x80; // 1bit,1表示最后一帧
if (!fin) return NULL;// 超过一帧暂不处理
bool mask_flag = (recBytes[1] & 0x80) == 0x80; // 是否包含掩码
if (!mask_flag) return NULL;
int payload_len = recBytes[1] & 0x7F; // 数据长度
char * masks = (char *)malloc(4);
char * payload_data=(char *)malloc(1024);
memset(payload_data01024);
if (payload_len == 126)
{
memcpy(masksrecBytes+44);
payload_len = (unsigned short)(recBytes[2] << 8 | recBytes[3]);
// payload_data =(char *)malloc(payload_len);
memcpy(payload_datarecBytes+8payload_len);
}
else if (payload_len == 127)
{
memcpy(masksrecBytes+104);
char * uInt64Bytes = (char *)malloc(8);
for (int i = 0; i < 8; i++)
{
uInt64Bytes[i] = recBytes[9 - i];
}
long long len = *(long long *)uInt64Bytes;
// payload_data = (char *)malloc(len);
for (long long i = 0; i < len; i++)
{
payload_data[i] = recBytes[i + 14];
}
free(uInt64Bytes);
}
else
{
memcpy(masksrecBytes+24);
// payload_data =(char *)malloc(payload_len);
memcpy(payload_datarecBytes+6payload_len);
}
for (int i = 0; i < payload_len; i++)
{
payload_data[i] = (byte)(payload_data[i] ^ masks[i % 4]);
}
free(masks);
return payload_data;
}
extern CDialog * MainWindow;
void ConvertGBKToUtf8(CString&char * strGBK)
{
amp=““;
int l
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5250 2013-03-14 00:00 WsServer\WsServer\char_trans_coding.cpp
文件 640 2013-03-13 23:52 WsServer\WsServer\char_trans_coding.h
文件 67 2013-03-12 20:14 WsServer\WsServer\globes.cpp
文件 648 2013-03-12 20:15 WsServer\WsServer\message.cpp
文件 77 2012-10-18 08:51 WsServer\WsServer\message.h
文件 3917 2011-09-08 16:50 WsServer\WsServer\myba
文件 169 2011-09-08 16:50 WsServer\WsServer\myba
文件 3091 2013-03-12 19:12 WsServer\WsServer\ReadMe.txt
文件 67777 2009-08-31 02:31 WsServer\WsServer\res\WsServer.ico
文件 672 2013-03-12 19:12 WsServer\WsServer\res\WsServer.rc2
文件 1728 2013-03-12 22:09 WsServer\WsServer\resource.h
文件 13274 2012-10-06 21:47 WsServer\WsServer\SHA1ACT.cpp
文件 1870 2012-10-06 21:47 WsServer\WsServer\SHA1ACT.h
文件 141 2013-03-12 19:12 WsServer\WsServer\stdafx.cpp
文件 1683 2013-03-12 19:12 WsServer\WsServer\stdafx.h
文件 234 2013-03-12 19:12 WsServer\WsServer\targetver.h
文件 2921 2013-03-14 19:47 WsServer\WsServer\tcp.cpp
文件 150 2013-03-12 21:25 WsServer\WsServer\tcp.h
文件 106020 2013-03-14 20:22 WsServer\WsServer\WsServer.aps
文件 2113 2013-03-12 19:12 WsServer\WsServer\WsServer.cpp
文件 454 2013-03-12 19:12 WsServer\WsServer\WsServer.h
文件 10960 2013-03-14 20:22 WsServer\WsServer\WsServer.rc
文件 6344 2013-03-12 20:36 WsServer\WsServer\WsServer.vcxproj
文件 2909 2013-03-12 20:36 WsServer\WsServer\WsServer.vcxproj.filters
文件 143 2013-03-12 19:12 WsServer\WsServer\WsServer.vcxproj.user
文件 3790 2013-03-14 18:47 WsServer\WsServer\WsServerDlg.cpp
文件 651 2013-03-12 22:03 WsServer\WsServer\WsServerDlg.h
文件 891 2013-03-12 19:12 WsServer\WsServer.sln
文件 6333952 2013-03-14 20:22 WsServer.exe
目录 0 2013-03-14 21:06 WsServer\WsServer\res
............此处省略5个文件信息
- 上一篇:用c++写的曲线拟合程序
- 下一篇:C、C++、C# 函数手册合集chm
相关资源
- 基于mfc的多线程文件传输
- MFC数字钟(基于VC6.0)
- VC++MFC小游戏实例教程(实例)+MFC类库
- ChartCtrl控件库(可在VS2019中使用)
- 商品库存管理系统 C++ MFC
- QtWebApp
- 基于STM32F407的W5500 tcpserver(官网例程
- 高性能服务器代码(50_06th_server_thre
- mfc 调用redis
- MFC视频播放器源码(支持avi/wma/mp3等格
- mfc绘图大全(画直线、矩形、椭圆)
- MFC控件重绘
- hook,捕获所有案件,查找所有窗口,
- (学习)VS2010之MFC入门到精通教程
- MFC文档_视图_框架_模板结构体系深入
- C++ sql2008 WebServer通讯.docx
- 简单员工管理系统(适合初学MFC)
- VC操作SQLSERVER数据库
- MFC五子棋游戏
- MFC UDP编程
- MFC的异步网络通讯应用程序
- C++MFC模块讲解,黑发程序员课程整理
- 一个简单而强大的基于MFC的web server源
- 基于MFC的VC++仿QQ浏览器源码(雏形)
- MFCaccess.rar
- VC++MFC课程设计的学生成绩管理系统
- MFC 日历控件 万年历 Calendar自绘
- CrystalDiskInfo-HDD/SSD硬盘信息,SMART信息
- MFC自定义界面HUI,高效简单,含详细
- 仿射密码-Affine cipher
评论
共有 条评论