91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 12KB
    文件類型: .zip
    金幣: 2
    下載: 1 次
    發布日期: 2021-06-07
  • 語言: C/C++
  • 標簽: 并發編程??websocket??

資源簡介

內部包含本人原創c語言編寫的websocket服務端程序源碼,默認支持1024條并發,可修改源碼輕易支持更高并發,并會自動刪除已關閉的連接,里面含80%以上源碼寫有注釋,可幫助websocket小白快速入門,積分不夠的小伙伴可以在我的博客直接復制源碼,https://blog.csdn.net/baidu_39146182/article/details/81394046

資源截圖

代碼片段和文件信息

/*********************************************************************************
?*??????Copyright:??(C)?2017?Yang?Zheng??
?*??????????????????All?rights?reserved.
?*
?*???????Filename:??base64.c
?*????Description:??This?file?
?*?????????????????
?*????????Version:??1.0.0(08/17/2017~)
?*?????????Author:??Yang?Zheng?
?*??????ChangeLog:??1?Release?initial?version?on?“08/17/2017?02:09:12?PM“
?*?????????????????
?********************************************************************************/
#include?“base64.h“
?
const?char?base[]?=?“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=“;?
?
char?*base64_encode(const?char*?data?int?data_len)?
{?
????int?prepare?=?0;?
????int?ret_len;?
????int?temp?=?0;?
????char?*ret?=?NULL;?
????char?*f?=?NULL;?
????int?tmp?=?0;?
????unsigned?char?changed[4];?
????int?i?=?0;?
????ret_len?=?data_len?/?3;?
????temp?=?data_len?%?3;?
?
????if?(temp?>?0)?
????????ret_len?+=?1;?
?
????ret_len?=?ret_len*4?+?1;?
????ret?=?(char?*)malloc(ret_len);?
????if?(?ret?==?NULL)?{?
????????printf(“ret?alloc?failure.\n“);?
????????return?NULL;?
????}?
????memset(ret?0?ret_len);?
?
????f?=?ret;?
????while?(tmp?????{?
????????temp?=?0;?
????????prepare?=?0;?
????????memset(changed?‘\0‘?4);?
????????while?(temp?????????{?
????????????if?(tmp?>=?data_len)?
????????????????break;?
?
????????????prepare?=?((prepare?<????????????tmp++;?
????????????temp++;?
????????}?
?
????????prepare?=?(prepare<<((3-temp)*8));?
????????for?(i=0;?i<4?;i++)?{?
????????????if?(temp?????????????????changed[i]?=?0x40;?
????????????else?
????????????????changed[i]?=?(prepare>>((3-i)*6))?&?0x3F;?
?
????????????*f?=?base[changed[i]];?
????????????f++;?
????????}?
????}?
????*f?=?‘\0‘;?
??????
????return?ret;?
}?
?
static?char?find_pos(char?ch)???
{?
????char?*ptr?=?(char*)strrchr(base?ch);//the?last?position?(the?only)?in?base[]?
????return?(ptr?-?base);?
}?
?
char?*base64_decode(const?char?*data?int?data_len)?
{?
????int?ret_len?=?(data_len?/?4)?*?3;?
????int?equal_count?=?0;?
????char?*ret?=?NULL;?
????char?*f?=?NULL;?
????int?tmp?=?0;?
????int?temp?=?0;?
????char?need[3];?
????int?prepare?=?0;?
????int?i?=?0;?
?
????if?(*(data?+?data_len?-?1)?==?‘=‘)?
????????equal_count?+=?1;?
?
????if?(*(data?+?data_len?-?2)?==?‘=‘)?
????????equal_count?+=?1;?
?
????if?(*(data?+?data_len?-?3)?==?‘=‘)?
????????equal_count?+=?1;?
?
????switch?(equal_count)?
????{?
????case?0:?
????????ret_len?+=?4;//3?+?1?[1?for?NULL]?
????????break;?
????case?1:?
????????ret_len?+=?4;//Ceil((6*3)/8)+1?
????????break;?
????case?2:?
????????ret_len?+=?3;//Ceil((6*2)/8)+1?
????????break;?
????case?3:?
????????ret_len?+=?2;//Ceil((6*1)/8)+1?
????????break;?
????}?
????ret?=?(char?*)malloc(ret_len);?
????if?(NULL?==?ret)?{?
????????printf(“ret?alloc?failure.\n“);?
???

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-07-31?15:56??websocket\
?????文件????????3704??2018-07-31?15:56??websocket\base64.c
?????文件?????????764??2018-07-31?15:57??websocket\base64.h
?????文件????????1927??2018-08-03?13:23??websocket\intlib.c
?????文件?????????659??2018-07-31?15:55??websocket\intlib.h
?????文件???????20877??2018-08-03?20:15??websocket\main.c
?????文件????????6699??2018-07-31?15:53??websocket\sha1.c
?????文件????????1151??2018-07-31?15:54??websocket\sha1.h

評論

共有 條評論