ibevent实现Tcp Client基于bufferevent实现

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <string.h>
#include <fcntl.h>
#include <event2/event.h>void read_cb(struct bufferevent *bev, void *arg)
{char buf[1024] = {0};bufferevent_read(bev, buf, sizeof(buf));printf("say:%s\n", buf);bufferevent_write(bev, buf, strlen(buf) +1);sleep(1);
}void write_cb(struct bufferevent *bev, void *arg)
{printf("我是客户端的写回调函数,没卵用\n");
}
void event_cb(struct bufferevent *bev, short events, void * arg)
{if(events & BEV_EVENT_EOF){printf("connection closed \n);}else if(events & BEV_EVENT_ERROR){printf("some other error\n");}else if(events & BEV_EVENT_CONNECTED){printf("已经连接了服务器.....\n");return ;}//释放资源bufferevent_free(bev);
}
//客户端与用户教会,从终端读取数据给服务器
void read_terminal(evutil_socket_t fd, short what, void *arg)
{//读数据char buf[1024] = {0};int len = read(fd, buf, sizeof(buf));struct bufferevent* bev = (struct bufferevent*)arg;//发送数据bufferevent_write(bev, buf, len+1);
}
int main()
{struct event_base* base = NULL;base = event_base_new();//通信的fd放到bufferevent中struct bufferevent *bev = NULL;bev = bufferevent_socket_new(base, fd, BEV_OPT_CLOSE_ON_FREE);// init server infostruct sockaddr_in serv;memset(&serv, 0, sizeof(serv));serv.sin_family = AF_INET;serv.sin_port = htons(9999);inet_pton(AF_INET, "127.0.0.1", &serv.sin_addr.s_addr);//连接服务器bufferevent_socket_connect(bev, (struct sockaddr*)&serv, sizeof(serv));//设置回调bufferevent_setcb(bev, read_cb, write_cb, event_cb, NULL);//设置回调生效bufferevent_enable(bev, EV_READ);//创建事件struct event* ev = event_new(base, STDIN_FILENO, EV_READ | EV_PERSIST,READ_terminal, bev);//添加事件avent_add(ev, NULL);event_base_dispatch(base);event_free(ev);event_base_free(base);
}

libevent实现TCP 客户端相关推荐

  1. libevent实现TCP服务器通信

    libevent实现TCP服务器通信 1.libevent库安装 1.1 libevent库优点 1.2源码包安装步骤 2.libevent框架 2.1创建事件 2.2添加事件到 event_base ...

  2. python socket tcp客户端_python网络编程socketserver模块(实现TCP客户端/服务器)

    摘录python核心编程 socketserver(python3.x版本重新命名)是标准库中的网络编程的高级模块.通过将创建网络客户端和服务器所必须的代码封装起来,简化了模板,为你提供了各种各样的类 ...

  3. TCP 客户端程序开发

    TCP 客户端程序开发 1. 开发 TCP 客户端程序开发步骤回顾 创建客户端套接字对象 和服务端套接字建立连接 发送数据 接收数据 关闭客户端套接字 2. socket 类的介绍 导入 socket ...

  4. Qt编写网络调试助手(TCP客户端+TCP服务端+UDP服务端)终极版开源

    时隔半年,对网络调试助手工具进行所有代码重写,这次目录结果整齐的一逼,代码整齐的一逼,非常完善了,打死也不再改版了.这次真的打死也不再改版了. 旧版本1:http://www.qtcn.org/bbs ...

  5. 通用异步 Windows Socket TCP 客户端组件的设计与实现

    编写 Windows Socket TCP 客户端其实并不困难,Windows 提供了6种 I/O 通信模型供大家选择.但本座看过很多客户端程序都把 Socket 通信和业务逻辑混在一起,剪不断理还乱 ...

  6. 简易TCP客户端和服务端的实现

    文章目录 1 客户端的实现 2 服务端的实现 1 客户端的实现 用Socket API建立简易TCP客户端: 建立一个socket. 连接服务器 connect. 接收服务器信息 recv. 关闭so ...

  7. Qt中的TCP客户端编程

    文章目录 1 Qt中的TCP客户端编程 1.1 TCP客户端编程介绍 1.2 QTcpSocket的同步编程 1.3 QTcpSocket的异步编程 1 Qt中的TCP客户端编程 1.1 TCP客户端 ...

  8. Python基于socket实现的TCP客户端

    ''' 基于socket实现的TCP客户端 '''import socket# 建立socket对象 # 参数一表示IP地址类型(AF_INET为IPV4,AF_INET6为IPV6),参数二表示连接 ...

  9. java tcp发消息给硬件_java – TCP客户端/服务器通信只发送第一条消息?

    我在java中设置一个简单的TCP客户端服务器交互. 服务器: 服务器是用Java编写的桌面客户端: import java.io.BufferedReader; import java.io.Dat ...

  10. Socket之TCP客户端【Python】

    下面是其他相关的终端的创建: Socket之TCP服务器[Python] Socket之UDP服务器[Python] Socket之UDP客户端[Python] 同样的,跟创建TCP服务器一样,我们也 ...

最新文章

  1. 谈新公司的人才队伍建设
  2. hadoop目录命令
  3. 项目中除了需求外还需要知道的问题
  4. 英雄传说服务器维护中,英雄传说:星之轨迹 正统《轨迹》手游无法连接服务器是什么原因...
  5. SL专题2:加入并熟悉Second Life世界
  6. jdk源码分析书籍 pdf_如何阅读源码?
  7. DataGridView DataSource 如何实现排序
  8. DevIL真是好用得想哭
  9. ASP.NET Core 基于角色的 JWT 令牌
  10. arrylist和linked list区别
  11. simulink中mask设置_(实现BPSK学习Verilog)1. Simulink仿真实现
  12. 4-3利用神经网络解决分类和回归问题(1)
  13. 小米商城html_北京市发放新一批 170 万个消费券:京东、小米商城等平台可领
  14. xshell访问内网虚拟机
  15. 语句--分支语句if case
  16. Win10:重新安装window store
  17. 从单个静止图像进行 3d 深度重建(论文2007)
  18. Mac端视频字幕压制:HandBrake/Premute/松果压制
  19. linux 下的无线网络配置,详解在LINUX环境下怎样设置无线网络配置
  20. ChucK初步(7)

热门文章

  1. matlab 图片显示函数,matlab图像显示函数
  2. 去除PreferenceScreen过期提示
  3. php 1---100之间的和 几种方法
  4. UDP协议和TCP协议
  5. 软件研发部门的基础设施
  6. 超强整理-计量面板数据分析资料大全
  7. 简单sql存储过程实例、储过程实战
  8. GPS数据格式的分析与处理
  9. visio2003 数据表模型中显示字段类型和注释
  10. WEB密码安全输入控件