資源簡介
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? {
????????????????????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_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
評論
共有 條評論