资源简介
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
相关资源
- VC++6.0 MFC使用ODBC链接MySQL把图片写入
- 肯德基点餐界面MFC
- 基于c++MFC的运动会管理系统.rar
- 个人收支财务管理系统 VC6.0MFC+ sql s
- C++聊天室(MFC实现)
- MFC 点对点聊天小系统
- vs2010 操作WORD VBA MFC 批注 WORD
- 基于MFCC的GMM的说话人识别.rar
- MFC记事本程序
- Guard Port - MFC 2012
- VC之MFC类库中文手册一怀去意.rar
- Visual+C++与SQL+Server开发仓库管理系统
- 解决VC6生成的MFC程序不能在没有安装
- MFC非客户区完美自绘
- mfc42d.dll 【64位+32位】34087
- MFC解决窗口保存及重绘闪烁问题的一
- MFC解决窗口保存及重绘闪烁问题的一
- winsocket编程实现简单 server端和client端
- 在MFC中使用duilib
- 文本有关的说话人识别系统
- MFC与SQL工资管理系统.rar
- Hermite,Bezier,三次B样条曲线的MFC实现
- MFC的用户登录系统
- mfc运行必须的5个dll
- 中国象棋对弈(MFC单机版)
- 基于C_S结构的Socket程序设计(含源码
- MFC使用WebBrowser控件调用百度地图API案
- msvcr80d.dll msvcp80d.dll mfc80d.dll Microsoft
- mfc开发的虚拟列表控件(包含3个)
- MFC教师课程管理系统+mysql
评论
共有 条评论