• 大小: 1.62MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-08-30
  • 语言: C/C++
  • 标签: MFC  websocket  server  

资源简介

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\mybase64.cpp

     文件        169  2011-09-08 16:50  WsServer\WsServer\mybase64.h

     文件       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个文件信息

评论

共有 条评论