计算程序运行时间

来源:互联网 发布:windows进程间通信 编辑:程序博客网 时间:2024/04/28 01:31

#include <stdlib.h>#include <stdio.h>#include <stdlib.h>#include <errno.h>#include <string.h>#include <sys/types.h>#include <netinet/in.h>#include <netdb.h>#include <sys/socket.h>#include <sys/wait.h>#include <unistd.h>#include <arpa/inet.h>#include <time.h>#include <iostream>#include <sys/time.h>using namespace std;int main(int argc, char** argv) {    if(argc<2) {        cout << "param error" << endl;        exit(1);    }    char *hostname = argv[1];    struct sockaddr_in address;    int client_sock;    int len,result;    int n,tmp;    struct hostent *h = gethostbyname(hostname);    printf("host name :%s\n",h->h_name);    printf("IP address :%s\n",inet_ntoa(*(struct in_addr*)h->h_addr));//转化地址    char *ipstr = (char *)inet_ntoa(*(struct in_addr*)h->h_addr);    client_sock=socket(AF_INET,SOCK_STREAM,0);    address.sin_addr.s_addr=inet_addr(ipstr);     address.sin_family=AF_INET;    address.sin_port=htons(80);    len=sizeof(address);    struct timeval tpstart,tpend;    float timeuse;    //开始时间gettimeofday(&tpstart,NULL);    result=connect(client_sock,(struct sockaddr *)&address,len);    //结束时间gettimeofday(&tpend,NULL);//时间计算timeuse=1000000*(tpend.tv_sec-tpstart.tv_sec)+tpend.tv_usec-tpstart.tv_usec;timeuse/=1000000;printf("Used Time:%f\n",timeuse);    if(result==-1){        printf("error!");        exit(-1);    }   close(result);   exit(0);    return (EXIT_SUCCESS);}

 通过输入域名,检测连接时间,在这做个笔记,供大家以后参考,

1. gethostbyname返回的结构 struct hostent, 获得域名的IP地址;

2. 把IP绑定到address上;

3. gettimeday函数,计算微秒。


 


原创粉丝点击