国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

linux下的應用開發(fā)起步--簡化螞蟻制作(一)

2024-07-21 02:37:29
字體:
供稿:網(wǎng)友

  摘要:linux下的應用開發(fā)起步--簡化螞蟻制作
  
  在讀過本欄目先前有關的linux下的編程相關知識后,親愛的網(wǎng)友。不知你們是否開始迫不及待地想開始你的第一個程序啊,當然不是那種簡單的“HELLO WORLD!”啦(^=^...).
  
    在這里,linuxbird將和你一道作個簡單的LINUX下的螞蟻程序,就是DOWNLOAD吧,下載文件,不過吶,你可別期望它現(xiàn)在就象聞名的netants那樣強勁啊。你可別期望太高。(嘻嘻。。。。。。)
  
    但是,我覺得,“螞蟻雖小,五臟俱全”所以,通過這一例子,還是可以學到linux下編程的一些精髓。即使是九牛一毛也是不錯的。
  
    OK, 廢話少說,LET'S FLY WITH ME!!!!
  
    基本思路是這樣的:利用socket來建立鏈接,然后用Html的get方法來下載文件。
  
    具體步驟如下:
  
    1.先從配置文件ant.conf中讀取代理服務器的的信息:代理服務器地址、代理服務服務器的端口。或者直接從命令行中取得這些參數(shù)。
  
    2.在取得這些數(shù)據(jù)后,就可以用開始做DOWNLOAD的工作了,在這里要明白其download的指令主要是用HTTP協(xié)議的GET方法。另外以下程序過程中要用到以下一些系統(tǒng)調(diào)用:
  
    1)socket 所屬庫
  
    這是最基本的工具,用的時候要把這兩個庫#include進來。有關套接口的具體知識我這里就不多講了,主要是用它創(chuàng)建一個套接口。
  
    定義如下:
  
   int socket(int domain,int type,int PRotocol);
  
    其中:
  
   domain為 AF_INET,
  
    第二參數(shù)為套接口的類型:SOCK_STREAM或SOCK_DRGAM.這里用前者。
  
    第三個參數(shù)為0
  
    sock返回的是結果存在一個數(shù)據(jù)結構sockaddr_in中,這個結構如下:
  
   strUCt sockaddr_in{
   short int sin_family; /* 存放domain*/
   unsigned short int sin_port; /*存放鏈接端口*/
   struct in_addr sin_addr; /*存放目標地址*/
   unsigned char sin_zero[8]; /* 存放該數(shù)據(jù)結構的長度*/
   }
  
    2)connect 所屬庫
  
    在成功創(chuàng)建socket后,就可以進行連接工作了。
  
    該函數(shù)頭定義如下:
  
   int connect(int sockfd,struct sockaddr *serv_addr,int addrlen);
  
    其中:
  
   sockfd: 創(chuàng)建socket時返回的套接口文件描述字符;
   serv_addr: 指向數(shù)據(jù)結構sockaddr的指針;
  sin_zero[8]: 長度,可以用sizeof(cockaddr_in);
  
    3)gethostbyname 所屬庫
  
    這個是根據(jù)域名返回ip地址的函數(shù)的.
  
    它的返回是指向數(shù)據(jù)結構 hostent的指針,該數(shù)據(jù)結構定義如下:
  
  struct hostent{
   char *h_name; /*主機的正式名稱*/
   char **h_aliases; /* 主機的別名*/
   int h_addrtype; /*返回的地址類型,一般是AF_INET*/
   int h_length; /* 地址的字節(jié)長度*/
   char **h_addr_list /*主機的網(wǎng)絡地址*/
  }
  
    4)sigaction 所屬庫
  
   int sigaction(int signum, const struct sigaction *act,
   struct sigaction *oldact);
  
    主要是用來處理進程忽然中斷的,舊的進程將在保存在oldact中的。
oldact是指向數(shù)據(jù)結構sigaction的指針。
  
   struct sigaction {
   void (*sa_handler)(int);
   sigset_t sa_mask;
   int sa_flags;
   void (*sa_restorer)(void);
   }
  
    5)getopt 所屬庫
  
   int getopt(int argc, char * const argv[],
   const char *optstring);
  
    該函數(shù)主要是用來分析命令行中輸入?yún)?shù)的。
  
    其中: optstring為字符匹配串。
  
    并且取值的結果存放在char *optarg

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 酉阳| 东台市| 南郑县| 肃北| 洪洞县| 周口市| 恭城| 静宁县| 东辽县| 葫芦岛市| 哈尔滨市| 临朐县| 商都县| 贡觉县| 和平县| 乌拉特后旗| 岗巴县| 兰溪市| 卫辉市| 中方县| 道孚县| 莲花县| 泸水县| 滁州市| 信阳市| 宁南县| 普兰县| 北流市| 顺昌县| 芦溪县| 南投县| 从江县| 鱼台县| 视频| 宜君县| 四平市| 林西县| 平顺县| 登封市| 都匀市| 五常市|