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

資源簡介

一款用C實現的帶協商的私有通信協議, 協議 通信 傳輸 tcp 服務

資源截圖

代碼片段和文件信息

#include?
#include?
#include?“packet.h“
#include?“iks/dom.h“
#include?“iks/iksemel.h“
#include?“encrypt/ert_rsa.h“
#include?“encrypt/ert_aes.h“
#include?“encrypt/ert_des3.h“
#include?“compress/cps_zlib.h“
#include?“util.h“


void?set_content(const?char?*source?char?**dest);
int?set_cps_type(const?char?*src?packet_parser_t?*pkg);
int?cmp_cps_type(const?char?*src?packet_parser_t?*pkg);
void?set_heatbeat(const?char?*sponsor?const?char*?seconds?packet_parser_t?*pkg);
int?set_talk_crt_type(const?char*?src?packet_parser_t?*pkg);
int?set_transfer_crt_type(const?char*?src?packet_parser_t?*pkg);
int?cmp_transfer_crt_type(const?char*?src?packet_parser_t?*pkg);
int?set_talk_crt_public_key(const?char*?src?packet_parser_t?*pkg);
int?set_talk_crt_private_key(const?char*?src?packet_parser_t?*pkg);
int?set_transfer_crt_key(const?char*?src?packet_parser_t?*pkg);
char*?get_transfer_crt_key(const?packet_parser_t?*pkg);
int?set_client_id(const?char*?src?packet_parser_t?*pkg);
int?set_cert_id(const?char*?src?packet_parser_t?*pkg);
int?set_client_subject(const?char*?src?packet_parser_t?*pkg);
int?set_client_signature(const?char*?src?packet_parser_t?*pkg);
int?set_talk_type(int?type?packet_parser_t?*pkg);


/**?
?*?為數據包添加頭部
?*
?*?@param?source?[in]?數據源
?*?@param?src_len?[in]?數據源長度。如果為-1則表示source是以\0結尾的字符串。
?*?@param?plain_len?[in]?壓縮加密前的數據包長度
?*?@param?dest_len?[out]?輸出數據的長度
?*
?*?@return?返回添加頭部的數據包
?*
?*?@note?注意使用后主動釋放內存
?*/
char?*pkg_add_header(const?char?*source?int?src_len?int?plain_len?int?*dest_len);

/**?
?*?獲取數據包的包體,去掉包頭。
?*?如果數據包完整,則截取完整部分去掉包頭,返回包體,剩余未解析的數據包通過source返回。
?*?如果數據包不完整,則返回NULL。
?*
?*?@param?source?[in]?數據源
?*?@param?source_len?[in]?數據源長度
?*?@param?plain_body_len?[out]?加密壓縮前數據包體的長度,用于解壓縮數據時分配數據緩沖區
?*?@param?cipher_body_len?[out]?輸出數據包體的長度
?*?@param?remainLen?[out]?剩余未解析的數據包片段的長度
?*
?*?@return?返回去掉頭部的包體
?*
?*?@note?注意使用后主動釋放內存
?*/
char?*pkg_get_body(char?**source?int?source_len?int?*plain_body_len?int?*cipher_body_len?int?*remainLen);

/**
?*?將來自網絡端的數據解碼。
?*?服務器端:解析協商包和數據包
?*?客戶端:解析服務器響應的協商包和數據包
?*?通過回調函數返回解析結果
?*
?*?@param?pkg?[in][out]?協商結構填充
?*?@param?source?[in]?數據源
?*?@param?source_len?[in]?數據源長度
?*?@param?plain_body_len?[in]?數據包在壓縮加密前的長度
?*?
?*?@return?成功返回0,否則返回錯誤碼
?*/
int?pkg_data_parse(?packet_parser_t?*pkg?const?char*?source?int?source_len?int?plain_body_len);

//?客戶端組裝發送給服務器端的協商包。
char*?pkg_talk_make(const?packet_parser_t?*pkg);

//?服務器端組裝響應給客戶端的協商包
char*?pkg_talk_rtn(const?packet_parser_t?*pkg);

//?
int?pkg_talk_parse(packet_parser_t?*pkg?const?char*?xml);

//?對數據包包體進行壓縮加密
//?壓縮加密后的字符串可能不是以0結尾的,所以需要返回字符串的長度cipher_body_len
char?*pkg_compress_encrypt(const?packet_parser_t?*pkg?const?char?*source?int?source_len?int?*cipher_body_len);

//?對收到的數據包包體進行解密解壓縮
//?由于返回的是明文數據包所以不需要返回明文數據包的長度(以0結尾的字符串)
char?*pkg_uncompress_decrypt(const?packet_parser_t?*pkg?const?char?*source?int?source_len?int?plain_body_len

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2013-04-24?17:51??packet\
?????目錄???????????0??2013-08-20?11:19??packet\.svn\
?????文件????????2442??2013-08-20?11:19??packet\.svn\entries
?????目錄???????????0??2013-04-24?17:50??packet\.svn\prop-base\
?????文件??????????53??2012-11-29?13:14??packet\.svn\prop-base\packet.suo.svn-base
?????目錄???????????0??2013-08-22?17:27??packet\.svn\props\
?????目錄???????????0??2013-04-24?17:51??packet\.svn\text-base\
?????文件????????1284??2012-11-30?09:13??packet\.svn\text-base\Makefile.svn-base
?????文件??????????45??2012-11-30?09:13??packet\.svn\text-base\README.md.svn-base
?????文件???????23143??2012-12-03?11:19??packet\.svn\text-base\packet.c.svn-base
?????文件????????4209??2012-11-30?09:13??packet\.svn\text-base\packet.h.svn-base
?????文件?????????878??2012-11-30?09:13??packet\.svn\text-base\packet.sln.svn-base
?????文件???????21504??2012-11-30?09:13??packet\.svn\text-base\packet.suo.svn-base
?????文件????????2490??2012-11-30?09:13??packet\.svn\text-base\packet.vcxproj.filters.svn-base
?????文件????????5287??2012-11-30?09:13??packet\.svn\text-base\packet.vcxproj.svn-base
?????文件?????????143??2012-11-30?09:13??packet\.svn\text-base\packet.vcxproj.user.svn-base
?????文件????????2148??2012-11-30?09:13??packet\.svn\text-base\type.h.svn-base
?????文件????????2546??2012-12-03?11:19??packet\.svn\text-base\unit_test.c.svn-base
?????文件?????????661??2012-12-03?11:19??packet\.svn\text-base\util.c.svn-base
?????文件?????????126??2012-12-03?11:19??packet\.svn\text-base\util.h.svn-base
?????文件???????86717??2012-11-30?09:13??packet\.svn\text-base\zlib.h.svn-base
?????目錄???????????0??2013-08-20?11:19??packet\.svn\tmp\
?????目錄???????????0??2013-08-22?17:27??packet\.svn\tmp\prop-base\
?????目錄???????????0??2013-08-22?17:27??packet\.svn\tmp\props\
?????目錄???????????0??2013-08-22?17:27??packet\.svn\tmp\text-base\
?????文件????????1284??2012-11-29?09:18??packet\Makefile
?????文件??????????45??2012-11-29?09:18??packet\README.md
?????目錄???????????0??2013-04-24?17:51??packet\compress\
?????目錄???????????0??2013-08-20?11:19??packet\compress\.svn\
?????文件?????????521??2013-08-20?11:19??packet\compress\.svn\entries
?????目錄???????????0??2013-08-22?17:27??packet\compress\.svn\prop-base\
............此處省略74個文件信息

評論

共有 條評論