博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
libevent和libcurl的一些学习
阅读量:5193 次
发布时间:2019-06-13

本文共 2217 字,大约阅读时间需要 7 分钟。

libcurl是一个用于传递数据的库;libevent则是提供服务器相应操作的库。

网上关于libcurl的介绍很多,主要介绍了如何用它下载网页等功能,另外网上也有许多相关php代码的实例。libevent的相关资源比较少。

一下是我实现的两个简单的小例子,一个利用libcurl发送数据,一个利用libevent去接收。

libcurl.c 发送数据

1 #include
2 #include
3 int main(void){ 4 char *url="http://127.0.0.1:8080/test"; 5 char mypost[]="asdfasdfasdfsdf"; 6 // mypost[4]='\0'; 7 // CURLcode return_code; 8 // return_code=curl_global_init(CURL_GLOBAL_WIN32); 9 CURL *curl=curl_easy_init(); 10 if(curl==NULL){ 11 perror("get a easy heandle failed.\n"); 12 curl_easy_cleanup(curl); 13 curl_global_cleanup(); 14 return -1; 15 } 16 curl_easy_setopt(curl,CURLOPT_HEADER,1); 17 curl_easy_setopt(curl,CURLOPT_URL,url); 18 curl_easy_setopt(curl,CURLOPT_POST,1); 19 curl_easy_setopt(curl,CURLOPT_POSTFIELDS,(void *)mypost); 20 curl_easy_perform(curl); 21 curl_easy_cleanup(curl); 22 return 0; 23 }

 libevent.c 接收数据

1 #include
2 #include
3 void test_handle(struct evhttp_request *r,void *u){ 4 u_char *buf; 5 buf=EVBUFFER_DATA(r->input_buffer); 6 evhttp_send_reply(r,200,"read ok!",NULL); 7 printf("the host is: %s \n",r->remote_host); 8 printf("the data is:\n%s\n",buf); 9 return ; 10 } 11 int main(void){ 12 char *api_uri="http://127.0.0.1"; 13 struct event_base *base; 14 struct evhttp *http; 15 base =event_base_new(); 16 http=evhttp_new(base); 17 if(!http){ 18 perror("evhttp_new() failed"); 19 return -1; 20 } 21 if(evhttp_bind_socket(http,"0.0.0.0",8080)){ 22 perror("bind_sock() failed"); 23 return -1; 24 } 25 //evhttp_set_cb(http,"/",test_handle,NULL); 26 evhttp_set_gencb(http,test_handle,NULL); 27 event_base_dispatch(base); 28 evhttp_free(http); 29 event_base_free(base); 30 return 0; 31 }

 关于这两个库的比较好的学习地址:

转载于:https://www.cnblogs.com/aLittleBitCool/archive/2011/07/02/2096384.html

你可能感兴趣的文章
poj 3177 边双联通 **
查看>>
java.lang.UnsupportedOperationException
查看>>
java-斐波那契数列的解法
查看>>
rackup工具
查看>>
Linux operating system (Ubuntu) 学习-1
查看>>
ajax-原生写法步骤
查看>>
.Net语言 APP开发平台——Smobiler学习日志:如何在手机上实现饼图图表
查看>>
svn完整备份迁移
查看>>
Python字典实现分析
查看>>
jenkins+testNG
查看>>
Java自定义范型的应用技巧
查看>>
[洛谷1485] 火枪打怪
查看>>
白话经典算法系列之六 快速排序 快速搞定
查看>>
错了:用流量能够放肆,有wifi则要节制
查看>>
CSS渐变字体、镂空字体、input框提示信息颜色、给图片加上内阴影、3/4圆
查看>>
https://zhidao.baidu.com/question/362784520674844572.html
查看>>
第八周
查看>>
my.cnf_For5.7_注释版
查看>>
【MFC 学习笔记】CFile读写文件
查看>>
Java 的IO操作初步(一)
查看>>