曙海教育集團(tuán)論壇Linux專(zhuān)區(qū)Linux應(yīng)用開(kāi)發(fā) → linux下的應(yīng)用開(kāi)發(fā)起步--簡(jiǎn)化螞蟻制作(三)


  共有7392人關(guān)注過(guò)本帖樹(shù)形打印

主題:linux下的應(yīng)用開(kāi)發(fā)起步--簡(jiǎn)化螞蟻制作(三)

美女呀,離線(xiàn),留言給我吧!
wangxinxin
  1樓 個(gè)性首頁(yè) | 博客 | 信息 | 搜索 | 郵箱 | 主頁(yè) | UC


加好友 發(fā)短信
等級(jí):青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊(cè):2010-11-12 11:08:23
linux下的應(yīng)用開(kāi)發(fā)起步--簡(jiǎn)化螞蟻制作(三)  發(fā)帖心情 Post By:2010-11-23 10:29:54

C.前面看了一大段是不是有點(diǎn)云里霧里的啊?是有點(diǎn)羅嗦,但是俗話(huà)說(shuō):“萬(wàn)事總是開(kāi)頭難”O(jiān)K,現(xiàn)在總算可以寫(xiě)主文件了。

  

    下面就是ant.c

  

  #include "ant.h"

  #include "signal.h"

  //0表示不用,1表示用代理

  int use_proxy;

  //代理的地址

  char proxy_server[100];

  //端口

  u_short proxy_port;

  //螞蟻數(shù)目

  int ant_num;

  //下載量

  int bulk;

  //下載進(jìn)程

  int progress;

  char cfgfile[256];

  char logfile[256];

  struct Ant* ants[10];

  struct Mission ms;

  //響應(yīng)異常退出,將url、ant數(shù)據(jù)結(jié)構(gòu)中的變量值,存放到log。

  void justpause()

  {

  int i;

  FILE* log;

  log=fopen(logfile,"w");

  fprintf(log,"%s ",ms.url);

  for(i=0;iamount!=0)

  fprintf(log, "%d:%d ",ants[i]->position,ants[i]->amount);

  fclose(log);

  exit(1);

  }

  //總算挨到主了,呵呵。。。。。

  int main(int argc,char** argv)

  {

  int n;

  int maxfd;

  char savefile[256];

  FILE* goods;

  FILE* log;

  fd_set rset,aset;

  int finished;

  int length;

  char status[80];

  char c;

  struct sigaction sa;

  //初始化環(huán)境參數(shù)

  init_env( );

  //對(duì)命令行傳進(jìn)來(lái)的參數(shù)做判斷

  while((c=getopt(argc,argv,"n:u:s:p:l:h"))!=EOF){

  switch (c){

  //取得螞蟻數(shù)目

  case 'n':

  ant_num=atoi(optarg);

  if(ant_num > MAXANTNUM)

  ant_num = MAXANTNUM;

  break;

  //取得目標(biāo)的url地址。

  case 'u':

  strcpy(ms.url, optarg);

  break;

  //取得代理的地址

  case 's':

  strcpy(proxy_server, optarg);

  use_proxy=1;

  break;

  //取得代理的端口

  case 'p':

  use_proxy=1;

  proxy_port=(u_short)atoi(optarg);

  break;

  //取得日志文件名

  case 'l':

  strcpy(logfile,optarg);

  break;

  case 'h':

  printf("usage: ant -n antnum -u url -s proxyserver -p

  prxoy_port -l logfile ");

  return 1;

  }

  }

  //從日志文件中讀取url

  if(logfile[0] != 0){

  log = fopen(logfile, "r+");

  strcpy(ms.url,get_url_from_log(log));

  }

  //將值賦代理的相關(guān)變量

  if(use_proxy){

  strcpy(ms.host,proxy_server);

  ms.port=proxy_port;

  }else{

  strcpy(ms.host, extract_from_url(ms.url, SITENAME));

  ms.port = atoi(extract_from_url(ms.url, PORTNAME));

  }

  //如果有下載日志,從日志中取相關(guān)信息

  if(logfile[0] != 0){

  printf("The file you havent download,continue.......");

  n=0;

  strcpy(ms.url,get_url_from_log(log));

  while (1) {

  ants[n] = (struct Ant*)malloc(sizeof(struct Ant));

  memset(ants[n], 0, sizeof(struct Ant));

  if(!(assign_mission(log, ants[n])))

  break;

  n++;

  if(n > MAXANTNUM){

  printf("You logfile must be wrong! ");

  exit(1);

  }

  }

  fclose(log);

  free(ants[n]);

  ant_num=n;

  }

  else{

   //取得下載文件的大小,為每只螞蟻分配下載位置。

  bulk=get_size_of_url(&ms);

  if(bulk==0){

   printf("Cannot get the size of this object! ");

  ant_num=1;

  ants[0] = (struct Ant*)malloc(sizeof(struct Ant));

  ants[0]->position=0;

  ants[0]->amount=1073741823;

  }

  else if(bulk==-1){

   printf("Cannot connect to the site! ");

   exit(1);

  }

  else{

  for(n=0; nposition = (bulk/ant_num)*n;

  if(n!=(ant_num-1))

  ants[n]->amount = bulk/ant_num;

  else

  ants[n]->amount = bulk-(bulk/ant_num)*(ant_num-1);

  }

  }

  }

  /

 


支持(0中立(0反對(duì)(0單帖管理 | 引用 | 回復(fù) 回到頂部

返回版面帖子列表

linux下的應(yīng)用開(kāi)發(fā)起步--簡(jiǎn)化螞蟻制作(三)








簽名
主站蜘蛛池模板: 2022国内精品免费福利视频| vvvv99日韩精品亚洲| 狠狠色综合网站久久久久久久| 国产精品视频一区二区三区无码| 亚洲av永久综合在线观看尤物| 肉色无边(高h)| 夜间禁用10大b站| 久久精品日日躁夜夜躁欧美| 精品国产线拍大陆久久尤物| 国产精品视频一区二区三区不卡 | 成年美女黄网站色大免费视频| 亚洲综合无码无在线观看| 国产激情视频在线播放| 情欲小说app下载| 亚洲午夜久久久影院伊人| 老师办公室被吃奶好爽在线观看| 国产麻豆剧传媒精品国产免费| 久久亚洲欧美国产精品| 爱情岛永久地址www成人| 国产午夜精品福利| 亚洲妇熟xxxx妇色黄| 草莓视频污污在线观看| 国内精品久久人妻互换| 久久久久免费精品国产| 正在播放pppd| 国产111111在线观看| 尹人久久久香蕉精品| 很污很黄能把下面看湿的文字| 亚洲中文字幕久久精品无码a| 精品国产免费一区二区三区| 国产精品99re| chinesegay成年男人露j网站| 日本高清视频网址| 亚洲精品伊人久久久久| 羞羞漫画在线成人漫画阅读免费 | 亚洲a∨精品一区二区三区下载 | 东京无码熟妇人妻AV在线网址| 欧美一级大片在线观看| 免费扒丝袜在线观看网站| 高清一区二区在线观看| 国内精品久久久久久影院|