libevent实现TCP 客户端
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 客户端相关推荐
- libevent实现TCP服务器通信
libevent实现TCP服务器通信 1.libevent库安装 1.1 libevent库优点 1.2源码包安装步骤 2.libevent框架 2.1创建事件 2.2添加事件到 event_base ...
- python socket tcp客户端_python网络编程socketserver模块(实现TCP客户端/服务器)
摘录python核心编程 socketserver(python3.x版本重新命名)是标准库中的网络编程的高级模块.通过将创建网络客户端和服务器所必须的代码封装起来,简化了模板,为你提供了各种各样的类 ...
- TCP 客户端程序开发
TCP 客户端程序开发 1. 开发 TCP 客户端程序开发步骤回顾 创建客户端套接字对象 和服务端套接字建立连接 发送数据 接收数据 关闭客户端套接字 2. socket 类的介绍 导入 socket ...
- Qt编写网络调试助手(TCP客户端+TCP服务端+UDP服务端)终极版开源
时隔半年,对网络调试助手工具进行所有代码重写,这次目录结果整齐的一逼,代码整齐的一逼,非常完善了,打死也不再改版了.这次真的打死也不再改版了. 旧版本1:http://www.qtcn.org/bbs ...
- 通用异步 Windows Socket TCP 客户端组件的设计与实现
编写 Windows Socket TCP 客户端其实并不困难,Windows 提供了6种 I/O 通信模型供大家选择.但本座看过很多客户端程序都把 Socket 通信和业务逻辑混在一起,剪不断理还乱 ...
- 简易TCP客户端和服务端的实现
文章目录 1 客户端的实现 2 服务端的实现 1 客户端的实现 用Socket API建立简易TCP客户端: 建立一个socket. 连接服务器 connect. 接收服务器信息 recv. 关闭so ...
- Qt中的TCP客户端编程
文章目录 1 Qt中的TCP客户端编程 1.1 TCP客户端编程介绍 1.2 QTcpSocket的同步编程 1.3 QTcpSocket的异步编程 1 Qt中的TCP客户端编程 1.1 TCP客户端 ...
- Python基于socket实现的TCP客户端
''' 基于socket实现的TCP客户端 '''import socket# 建立socket对象 # 参数一表示IP地址类型(AF_INET为IPV4,AF_INET6为IPV6),参数二表示连接 ...
- java tcp发消息给硬件_java – TCP客户端/服务器通信只发送第一条消息?
我在java中设置一个简单的TCP客户端服务器交互. 服务器: 服务器是用Java编写的桌面客户端: import java.io.BufferedReader; import java.io.Dat ...
- Socket之TCP客户端【Python】
下面是其他相关的终端的创建: Socket之TCP服务器[Python] Socket之UDP服务器[Python] Socket之UDP客户端[Python] 同样的,跟创建TCP服务器一样,我们也 ...
最新文章
- 谈新公司的人才队伍建设
- hadoop目录命令
- 项目中除了需求外还需要知道的问题
- 英雄传说服务器维护中,英雄传说:星之轨迹 正统《轨迹》手游无法连接服务器是什么原因...
- SL专题2:加入并熟悉Second Life世界
- jdk源码分析书籍 pdf_如何阅读源码?
- DataGridView DataSource 如何实现排序
- DevIL真是好用得想哭
- ASP.NET Core 基于角色的 JWT 令牌
- arrylist和linked list区别
- simulink中mask设置_(实现BPSK学习Verilog)1. Simulink仿真实现
- 4-3利用神经网络解决分类和回归问题(1)
- 小米商城html_北京市发放新一批 170 万个消费券:京东、小米商城等平台可领
- xshell访问内网虚拟机
- 语句--分支语句if case
- Win10:重新安装window store
- 从单个静止图像进行 3d 深度重建(论文2007)
- Mac端视频字幕压制:HandBrake/Premute/松果压制
- linux 下的无线网络配置,详解在LINUX环境下怎样设置无线网络配置
- ChucK初步(7)