庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>操作系统>Linux>编程开发>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

linux下的应用开发起步--简化蚂蚁制作(一)

 作者:本站收集   日期:2005-4-13
字号选择〖 〗/ 双击滚屏 单击停止   
linuxbird


在读过本栏目先前有关的linux下的编程相关知识后,亲爱的网友。不知你们是
否开始迫不及待地想开始你的第一个程序啊,当然不是那种简单的“HELLO
WORLD!”啦(^=^...).
在这里,linuxbird将和你一道作个简单的LINUX下的蚂蚁程序,就是DOWNLOAD
吧,下载文件,不过呐,你可别期望它现在就象著名的netants那样强劲啊。你
可别期望太高。(嘻嘻。。。。。。)
但是,我觉得,“蚂蚁虽小,五脏俱全”所以,通过这一例子,还是可以学到
linux下编程的一些精髓。即使是九牛一毛也是不错的。
OK, 废话少说,LET'S FLY WITH ME!!!!
基本思路是这样的:利用socket来建立链接,然后用html的get方法来下载文
件。
具体步骤如下:
1.先从配置文件ant.conf中读取代理服务器的的信息:代理服务器地址、代理
服务服务器的端口。或者直接从
命令行中取得这些参数。
2.在取得这些数据后,就可以用开始做DOWNLOAD的工作了,在这里要明白其
download的指令主要是用HTTP协议的GET方法。另外以下程序过程中要用到以下
一些系统调用:
1)socket 所属库 ,
这是最基本的工具,用的时候要把这两个库#include进来。
有关套接口的详细知识我这里就不多讲了,主要是用它创建一个套接口。
定义如下:
int socket(int domain,int type,int protocol);
其中:
domain为 AF_INET,
第二参数为套接口的类型:SOCK_STREAM或SOCK_DRGAM.这里用前者。
第三个参数为0
sock返回的是结果存在一个数据结构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]; /* 存放该数据结构的长度*/
}
2)connect 所属库 ,
在成功创建socket后,就可以进行连接工作了。
函数头定义如下:
int connect(int sockfd,struct sockaddr *serv_addr,int addrlen);
其中:
sockfd: 创建socket时返回的套接口文件描述字符;
serv_addr: 指向数据结构sockaddr的指针;
sin_zero[8]: 长度,可以用sizeof(cockaddr_in);


3)gethostbyname 所属库
这个是根据域名返回IP地址的函数的.
它的返回是指向数据结构 hostent的指针,该数据结构定义如下:
struct hostent{
char *h_name; /*主机的正式名称*/
char **h_aliases; /* 主机的别名*/
int h_addrtype; /*返回的地址类型,一般是AF_INET*/
int h_length; /* 地址的字节长度*/
char **h_addr_list /*主机的网络地址*/
}
4)sigaction 所属库
int sigaction(int signum, const struct sigaction *act,
struct sigaction *oldact);
主要是用来处理进程突然中断的,旧的进程将在保存在oldact中的。oldact是
指向数据结构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);
函数主要是用来分析命令行中输入参数的。
其中: optstring为字符匹配串。
并且取值的结果存放在char *optarg'
上一篇:不要成为编程机器    下一篇:linux下的应用开发起步--简化蚂蚁制作(二)  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 本站收集
信息来源: 网络 录入时间: 2005-4-13
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿