cwbC 语言网络框架

联合创作 · 2023-09-20 01:52

cwb(C on Web)一个轻量级,快速的 C 语言网络框架。

特性:

  • 异步IO支持
  • 事件驱动库
  • 数据序列化、编码支持

示例代码

/*    事件驱动库    */
Cwb_Event_Base *base = cwb_event_new();
assert(base);
assert(!cwb_event_watch_fd(base,serverSocket,CWB_EVENT_READ,sockethandler,NULL));
cwb_event_loop(base);
cwb_event_destroy(base);

/*    数据结构    */
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<assert.h>

#include<cwb/Ds.h>

#include"Test.h"

int main(void)
{
	Cwb_Ds *dic=cwb_ds_new(CWB_DS_DICTIONARY,CWB_DS_SKEY);
	assert(dic);

	cwb_ds_set(dic,"I","Suote127");
	cwb_ds_set(dic,"you","User");
	cwb_ds_set(dic,"he","Unknow");

	puts(cwb_ds_get(dic,"he"));
	puts(cwb_ds_get(dic,"you"));
	puts(cwb_ds_get(dic,"I"));
	
	cwb_ds_set(dic,"I","The programmer");

	puts(cwb_ds_get(dic,"I"));

	cwb_ds_set(dic,"you",CWB_DS_UNDEFINED);
	assert(cwb_ds_get(dic,"you")==CWB_DS_UNDEFINED);

	cwb_ds_destroy(dic);
	
	return 0;
}

/*    动态字符串    */
#include<assert.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#include<cwb/Dstr.h>

int main(void)
{
	char temp[1024];
	fgets(temp,1024,stdin);

	temp[strlen(temp)-1]='\0';

	Cwb_Dstr *dstr = cwb_dstr_new();
	assert(dstr);
	
	assert(cwb_dstr_assign(dstr,temp));
	Cwb_Dstr *copy = cwb_dstr_copy(dstr);

	char *s = cwb_dstr_convert(dstr,NULL,0);
	puts(s);
	char *t = strdup(s);
	cwb_dstr_appendd(dstr,&t);
	assert(!t);
	cwb_dstr_appendc(dstr,':');
	cwb_dstr_appendc(dstr,')');
	free(s);
	
	s = cwb_dstr_convert(dstr,NULL,0);
	puts(s);

	cwb_dstr_destroy(dstr);
	free(s);

	cwb_dstr_appends(copy,":)");
	s = cwb_dstr_convert(copy,NULL,0);
	puts(s);
	free(s);

	return 0;
}

 

浏览 8
点赞
评论
收藏
分享

手机扫一扫分享

编辑
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑
举报