3333333333

来源:互联网 发布:淘宝公益宝贝标志 编辑:程序博客网 时间:2024/05/16 18:41
 
//每个线程的处理  void * http_get(void *param) {      struct HttpGetParam *phttpGetParam = (struct HttpGetParam *)param;  int Count = 0;      CURL *curl;//定义CURL类型的指针      CURLcode res; //定义CURLcode类型的变量        curl = curl_easy_init();//初始化一个CURL类型的指针         curl_easy_setopt(curl, CURLOPT_VERBOSE, configvalues.HttpDebug);//这里打开libcurl打印所有调试信息        curl_easy_setopt(curl, CURLOPT_HEADERDATA, phttpGetParam);            curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);      //CURLOPT_NOBODY只下报文头,不包括数据.但是这里默认是head命令,注释掉,则是GET命令      curl_easy_setopt(curl, CURLOPT_NOBODY, 1);        curl_easy_setopt(curl, CURLOPT_HTTPGET, 1);         curl_easy_setopt(curl, CURLOPT_HEADERFUNCTION, head_data);        //让用户指定url. Defaultport中存放的命令行传进来的网址      curl_easy_setopt(curl, CURLOPT_URL, phttpGetParam->url);            //传输时间 (ms)       curl_easy_setopt(curl, CURLOPT_TIMEOUT, configvalues.Interval);        //设置端口      //curl_easy_setopt(curl, CURLOPT_PORT, 80);      curl_easy_setopt(curl, CURLOPT_PORT, configvalues.Defaultport);        //这里可以用循环实现每个线程内部多次处理while(1){for(Count; Count < configvalues.SendCount; ++Count)  {  QueryPerformanceCounter(&m_nCurrentUsTime); // 获取当前时钟计数 phttpGetParam->httpStatistics.requestTime = (double)m_nCurrentUsTime.QuadPart;phttpGetParam->httpStatistics.responseTime = 0; //调用curl_easy_perform 执行我们的设置.并进行相关的操作. 在这里只在屏幕上显示出来.  res = curl_easy_perform(curl);pthread_mutex_lock(&mutex);   //上锁  StatCount += 1;pthread_mutex_unlock(&mutex);   //解锁//printf("res=%d\n", res);}Count = 0;//printf("11111111111111 == %ld\r\n",StatCount);if(StatCount == configvalues.SendCount * configvalues.MaxThread){GetLocaTime(1);printf("Success : %d *********** Fail : %d\r\n\r\n", SucceNum, ErrorNum);StatCount = 0;}Sleep(configvalues.TaskSleep);if(!strcmp(Putkey, "q"))break;}    //清除curl操作.      curl_easy_cleanup(curl);        return NULL;  }

原创粉丝点击