bufferevent实现的简易http client
来源:互联网 发布:it's worth it 编辑:程序博客网 时间:2024/06/05 00:37
#include "stdafx.h"#include <event2/dns.h>#include <event2/bufferevent.h>#include <event2/buffer.h>#include <event2/util.h>#include <event2/event.h>#include <stdio.h>void readcb(struct bufferevent *bev, void *ptr){char buf[1024];int n;struct evbuffer *input = bufferevent_get_input(bev);while ((n = evbuffer_remove(input, buf, sizeof(buf))) > 0) {fwrite(buf, 1, n, stdout);}}void eventcb(struct bufferevent *bev, short events, void *ptr){if (events & BEV_EVENT_CONNECTED) {printf("Connect okay.\n");} else if (events & (BEV_EVENT_ERROR|BEV_EVENT_EOF)) {struct event_base *base = (struct event_base *)ptr;if (events & BEV_EVENT_ERROR) {int err = bufferevent_socket_get_dns_error(bev);if (err)printf("DNS error: %s\n", evutil_gai_strerror(err));}printf("Closing\n");bufferevent_free(bev);event_base_loopexit(base, NULL);}}int main(int argc, char **argv){struct event_base *base;struct evdns_base *dns_base;struct bufferevent *bev;WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested = MAKEWORD( 2, 2 );err = WSAStartup( wVersionRequested, &wsaData );if ( err != 0 ) {return -1;}if (argc != 3) {printf("Trivial HTTP 0.x client\n""Syntax: %s [hostname] [resource]\n""Example: %s www.google.com /\n",argv[0],argv[0]);return 1;}base = event_base_new();dns_base = evdns_base_new(base, 1);bev = bufferevent_socket_new(base, -1, BEV_OPT_CLOSE_ON_FREE);bufferevent_setcb(bev, readcb, NULL, eventcb, base);bufferevent_enable(bev, EV_READ|EV_WRITE);evbuffer_add_printf(bufferevent_get_output(bev), "GET %s\r\n", argv[2]);bufferevent_socket_connect_hostname(bev, dns_base, AF_UNSPEC, argv[1], 80);event_base_dispatch(base);WSACleanup();return 0;}
0 0
- bufferevent实现的简易http client
- bufferevent实现的echoserver
- 利用twisted实现的简易web client
- 简易HTTP代理的实现
- 简易HTTP服务器的实现
- 从 bufferevent 实现学习 Libevent 的使用
- 从 bufferevent 实现学习 Libevent 的使用
- 从 bufferevent 实现学习 Libevent 的使用
- 使用Java实现简易的HTTP服务器
- Erlang实现的简易HTTP服务器
- Nio--Selector实现简易的http服务器
- java实现的HTTP简易服务器
- Nio--Selector实现简易的http服务器
- libevent实现http client
- 简易http接口实现
- java udp client 客户端简易实现
- 简易http服务器的实现(实现)httpserver.c
- HTTP Client 的类
- 认识HTML5的WebSocket
- 键盘虚拟键值编码表
- static 关键字
- 第十七周项目一——体会函数参数传递
- 百度地图定位到某个经纬度
- bufferevent实现的简易http client
- 一些资源
- 10.2 处理大集合
- iOS 8 AutoLayout与Size Class
- ie 谷歌插件Chrome Frame
- write and read mtd device(轉載自http://stackoverflow.com/questions/15336285/write-on-a-mtd-block-devic)
- .NET视频总结(上篇)
- 飞速文件安全同步软件的实时加密技术
- 关于cocos2dx手游lua文件加密的解决方案