博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用c实现一个压力测试工具
阅读量:4184 次
发布时间:2019-05-26

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

#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
static const char* request="GET http://localhost/index.html HTTP/1.1\r\nConnection:keep-alive\r\n\rnxxxxxxxxx";int setnonblocking(int fd){ int old_option=fcntl(fd,F_GETFL); int new_option=old_option | O_NONBLOCK; fcntl( fd, F_SETFL,new_option); return old_option;}void addfd(int epoll_fd,int fd){ epoll_event event; event.data.fd=fd; event.events=EPOLLOUT | EPOLLET | EPOLLERR; epoll_ctl(epoll_fd,EPOLL_CTL_ADD,fd,&event); setnonblocking(fd);}/**** 向服务器写入len字节的数据*****/bool write_nbytes(int sockfd,const char* buffer,int len){ int bytes_write=0; printf("write out %d bytes to socket %d\n",len,sockfd); while(1){ bytes_write=send(sockfd,buffer,len,0); if(bytes_write==-1){ return false; }else if(bytes_write==0){ return false; } len==bytes_write; buffer=buffer+bytes_write; if(len<=0){ return true; } }}/******从服务器读取数据****************/bool read_once(int sockfd,char* buffer,int len){ int bytes_write=0; memset(buffer,'\0',len); bytes_write=recv(sockfd,buffer,len,0); if(bytes_write==-1){ return false; }else if(bytes_write==0){ return false; } printf("read in %d bytes from socket %d with content:%s\n",bytes_read,sockfd,buffer); return true;}/***向服务器发起num个TCP个连接,我们可以通过改变num来调整测试压力*/void start_conn(int epoll_fd,int num,const char* ip,int port){ int ret=0; struct sockaddr_in address; bzero( &address,sizeof(address) ); address.sin_family=AF_INET; inet_pton(AF_INET,ip,&address.sin_addr); address.sin_port=htons(port); for(int i=0;i

 

转载地址:http://xqboi.baihongyu.com/

你可能感兴趣的文章
Lattice FPGA 使用指南4 - 全局复位网络GSR的使用
查看>>
DDR3基本概念8 - 如何理解RTT和VTT
查看>>
DDR3基本概念9 - 8n pre-fetch architecture的含义
查看>>
DDR3基本概念10 - DDR MT/S的理解
查看>>
git命令缩写配置
查看>>
makefile常见问题
查看>>
ncverilog编译时Unrecognized system task or function: $fsdbDumpfile问题的解决方法
查看>>
window10配置环境不起作用
查看>>
在官网下载maven历史版本
查看>>
tomcat之启动类BootStrap
查看>>
tomcat处理请求的流程
查看>>
Spring之lazy-init
查看>>
类的加载机制
查看>>
SpringIoc
查看>>
spring bean 的生命周期
查看>>
常用的排序算法
查看>>
浅谈web授权常用策略随机
查看>>
jenkins自动部署随记
查看>>
Shell命令的随记
查看>>
TCP,HTTP,WEBSOCKET随记
查看>>