上一页 1 ··· 40 41 42 43 44 45 46 47 48 ··· 71 下一页
摘要: /* ************************************************************************ * Filename: main.c * Description: * Version: 1.0 * Created: 2011年07月26日 12时27分27秒 * Revision: none * Compiler: gcc * Author: YOUR NAME (), * Company: * ************************************************************************ 阅读全文
posted @ 2011-07-26 12:31 hnrainll 阅读(1718) 评论(0) 推荐(0) 编辑
摘要: 值-结果参数(socket编程中一到七的structsockaddr_in的长度参数)1.概念:当函数参数是从内核到进程时,函数被调用时参数大小是一个值,它告诉内核该参数的结构大小避免内核写操作越界,函数返回时,参数的结构大小又是一个结果,它告诉进程内核写进数据的多少,这种参数叫做值-结果参数。2.例子:八个socket编程中涉及的函数中,总是通过指针来传递指向结构的指针。同时结构的长度也作为参数来传递,但是其传递的方法取决于结构的传递方向:侍从内核到进程还是从进程到内核。详细如下:1>.参数从进程到内核:bind、connect从进程到内核传递参数,它明确知道要拷贝多少以及拷贝的数据。 阅读全文
posted @ 2011-07-25 21:37 hnrainll 阅读(623) 评论(0) 推荐(0) 编辑
摘要: 高位字节优先和低位字节优先。Internet上数据以高位字节优先顺序在网络上传输,所以对于在内部是以低位字节优先方式存储数据的机器,在Internet上传输数据时就需要进行转换。第一个结构类型是:struct sockaddr 该类型是用来保存socket信息的structsockaddr{ unsigned shortsa_family; /* 地址族, AF_xxx */ charsa_data[14]; /* 14 字节的协议地址 */};sa_family一般为AF_INET;sa_data则包含该socket的IP地址和端口号。另外还有一种结构类型:structsockaddr_in 阅读全文
posted @ 2011-07-25 21:31 hnrainll 阅读(1140) 评论(0) 推荐(0) 编辑
摘要: 我们已经知道,当把套接口地址传递给套接口函数时,总是通过指针传递的,即传递的是一个指向结构的指针。结构的长度也作为参数来传递,其传递的方式取决于结构的传递的方向:从进程到内核,还是从内核到进程。 1、从进程到内核传递的套接口结构有3个函数:bind,connect和sendto,这三个函数的一个参数是指向套接口结构的指针,另一个是结构的大小,如:structsockaddr_inserv;/*fill in serv[]*/connect(sockfd,(SA*)&serv,sizeof(serv)); 由于从进程到内核的参数是指向结构的指针和结构的大小,所以从进程到内核拷贝的数据是确 阅读全文
posted @ 2011-07-25 21:30 hnrainll 阅读(2020) 评论(0) 推荐(0) 编辑
摘要: 描述popen() 函数 用 创建管道 的 方式启动一个 进程, 并调用 shell. 因为 管道是被定义成单向的, 所以 type 参数 只能定义成 只读或者 只写, 不能是 两者同时, 结果流也相应的 是只读 或者 只写. command 参数 是 一个 字符串指针, 指向的是一个 以 null 结束符 结尾的字符串, 这个字符串包含 一个 shell 命令. 这个命令 被送到 /bin/sh 以 -c 参数 执行, 即由 shell 来执行. type 参数 也是 一个 指向 以 null 结束符结尾的 字符串的指针, 这个字符串 必须是 'r' 或者 'w’ 来 阅读全文
posted @ 2011-07-23 14:44 hnrainll 阅读(46276) 评论(1) 推荐(0) 编辑
摘要: 1、简介在Linux中,并不存在exec()函数,exec指的是一组函数,一共有6个,分别是:#include <unistd.h>extern char **environ;int execl(const char *path, const char *arg, ...);int execlp(const char *file, const char *arg, ...);int execle(const char *path, const char *arg, ..., char * const envp[]);int execv(const char *path, char 阅读全文
posted @ 2011-07-23 14:41 hnrainll 阅读(24249) 评论(0) 推荐(1) 编辑
摘要: SOCKET()我们使用系统调用socket()来获得文件描述符:#include<sys/types.h>#include<sys/socket.h>int socket(int domain,int type,int protocol);第一个参数domain设置为“AF_INET”。第二个参数是套接口的类型:SOCK_STREAM或SOCK_DGRAM。第三个参数设置为0。系统调用socket()只返回一个套接口描述符,如果出错,则返回-1。bind()一旦你有了一个套接口以后,下一步就是把套接口绑定到本地计算机的某一个端口上。但如果你只想使用connect()则 阅读全文
posted @ 2011-07-22 12:30 hnrainll 阅读(13013) 评论(1) 推荐(3) 编辑
摘要: 1 SHA1算法简介安全哈希算法(Secure HashAlgorithm)主要适用于数字签名标准(Digital SignatureStandard DSS)里面定义的数字签名算法(DigitalSignature AlgorithmDSA)。对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。在传输的过程中,数据很可能会发生变化,那么这时候就会产生不同的消息摘要。SHA1有如下特性:不可以从消息摘要中复原信息;两个不同的消息不会产生同样的消息摘要。2 术语和概念2.1位(Bit),字节(Byte)和字(Word)SH 阅读全文
posted @ 2011-07-22 10:58 hnrainll 阅读(8345) 评论(0) 推荐(0) 编辑
摘要: 如果你需要在Linux中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题。Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8。下面介绍一下,在Linux中如何查看文件的编码及如何进行对文件进行编码转换。查看文件编码在Linux中查看文件编码可以通过以下几种方式:1.在Vim 中可以直接查看文件编码Shell代码 :setfileencoding即可显示文件编码格式。如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在~/.vimrc 文件中添加以下内容:Shell代码 setencoding=utf-8fil 阅读全文
posted @ 2011-07-22 09:47 hnrainll 阅读(112725) 评论(2) 推荐(2) 编辑
摘要: HTTP协议是什么?简单来说,就是一个基于应用层的通信规范:双方要进行通信,大家都要遵守一个规范,这个规范就是HTTP协议。HTTP协议能做什么?很多人首先一定会想到:浏览网页。没错,浏览网页是HTTP的主要应用,但是这并不代表HTTP就只能应用于网页的浏览。HTTP是一种协议,只要通信的双方都遵守这个协议,HTTP就能有用武之地。比如咱们常用的QQ,迅雷这些软件,都会使用HTTP协议(还包括其他的协议)。HTTP协议如何工作?大家都知道一般的通信流程:首先客户端发送一个请求(request)给服务器,服务器在接收到这个请求后将生成一个响应(response)返回给客户端。在这个通信的过程中H 阅读全文
posted @ 2011-07-22 08:58 hnrainll 阅读(283) 评论(0) 推荐(0) 编辑
摘要: fseek函数是用来设定文件的当前读写位置.函数原型: int fseek(FILE*fp,long offset,int origin);函数功能:把fp的文件读写位置指针移到指定的位置.fseek(fp,20,SEEK_SET);意思是把fp文件读写位置指针从文件开始后移20个字节.ftell函数是用来获取文件的当前读写位置;函数原型:long ftell(FILE *fp)函数功能:得到流式文件的当前读写位置,其返回值是当前读写位置偏离文件头部的字节数.ban=ftell(fp);是获取fp指定的文件的当前读写位置,并将其值传给变量ban.fseek函数与ftell函数综合应用:分析:可 阅读全文
posted @ 2011-07-21 16:46 hnrainll 阅读(2755) 评论(0) 推荐(1) 编辑
摘要: ANSIC标准定义了以下6种可供C语言使用的预定义宏:__LINE__ 在源代码中插入当前源代码行号__FILE__ 在源代码中插入当前源代码文件名__DATE__ 在源代码中插入当前编译日期〔注意和当前系统日期区别开来〕__TIME__ 在源代码中插入当前编译时间〔注意和当前系统时间区别开来〕 __STDC__ 当要求程序严格遵循ANSIC标准时该标识符被赋值为1。__cplusplus标识符__LINE__和__FILE__通常用来调试程序;标识符__DATE__和__TIME__通常用来在编译后的程序中加入一个时间标志,以区分程序的不同版本;当要求程序严格遵循ANSIC标准时,标识符__ 阅读全文
posted @ 2011-07-21 16:20 hnrainll 阅读(1459) 评论(0) 推荐(0) 编辑
摘要: torrent文件信息存储格式:bencoding是一种以简洁格式指定和组织数据的方法。支持下列类型:字节串、整数、列表和字典。1 字符串存储格式: <字符串的长度>:<字符串的内容> 例如: 4:spam 表示spam, 2:ab 表示ab2 数字的存储格式: i<整数>e例如: i3e 表示整数3, i1024e 表示整数10243 列表的存储格式: l<子元素>e 其中:子元素可以是字符串,整数,列表和字典,或者是它们的组合体例如: l4:spam4:eggse 表示 [ "spam", "eggs" 阅读全文
posted @ 2011-07-21 14:43 hnrainll 阅读(6683) 评论(1) 推荐(0) 编辑
摘要: 字符串:字符串被如此编码:<字符串长度>:字符串正文.这种表示法没有任何的分界符.例子:如"8:announce"指"announce".整数:整数被如此编码:<i>整数值<e>.可以为负数,如'i-3e'例子:'i3e' 指 3.列表:列表是如此被表示的:<l>Bencode Value<e>,列表可以用来表示多个对象.列表内容可以包括字符串,整数,字典,甚至列表本身.例子:'l4:spam4:eggse' 指 [ "spam" 阅读全文
posted @ 2011-07-21 14:37 hnrainll 阅读(5652) 评论(0) 推荐(2) 编辑
摘要: #include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>int main(int argc, char *argv[]){ char buf[100]; char str[20] = "helloworld 100"; int num; sscanf(str,"%s %d",buf,&num); printf("the buf:%s %d\n",buf,num); return 0;}和 阅读全文
posted @ 2011-07-18 14:26 hnrainll 阅读(2224) 评论(0) 推荐(1) 编辑
摘要: #include <stdio.h>#include <stdlib.h>#include <unistd.h>int main(int argc, char *argv[]){char out_buf[100];char *str="hello world";int num=110;sprintf(out_buf,"%s.%d",str,num);printf("%s\n",out_buf);return 0;} sprintf和printf的不同点:printf是将数据打印到标准输出中.spri 阅读全文
posted @ 2011-07-18 12:41 hnrainll 阅读(2730) 评论(1) 推荐(0) 编辑
摘要: 最近在看网络编程部分内容,刚开始接触结构体struct sockaddr和struct sockaddr_in的时候,极其迷惑,在网上翻了不少帖子,慢慢有那么点清晰了。呵呵,现在结合一篇网友的文章,对这两个结构体进行解读。在linux环境下,结构体struct sockaddr在/usr/include/linux/socket.h中定义,具体如下:typedef unsigned short sa_family_t;struct sockaddr { sa_family_t sa_family; /* address family, AF_xxx */ char sa_data[14]; / 阅读全文
posted @ 2011-07-18 12:32 hnrainll 阅读(14954) 评论(0) 推荐(0) 编辑
摘要: /* ************************************************************************ * Filename: open.c * Description: * Version: 1.0 * Created: 2011年07月18日 18时54分51秒 * Revision: none * Compiler: gcc * Author: YOUR NAME (), * Company: * ************************************************************************ 阅读全文
posted @ 2011-07-18 12:20 hnrainll 阅读(2422) 评论(2) 推荐(0) 编辑
摘要: Setting the Application Icon on WindowsFirst, create an ICO format bitmap file that contains the icon image. This can be done with e.g. Microsoft Visual C++: Select File|New, then select the File tab in the dialog that appears, and choose Icon. (Note that you do not need to load your application int 阅读全文
posted @ 2011-07-15 09:20 hnrainll 阅读(1748) 评论(0) 推荐(0) 编辑
摘要: Qt的元对象系统基于如下三件事情:1.类:QObject,为所有需要利用原对象系统的对象提供了一个基类。2.宏:Q_OBJECT,通常可以声明在类的私有段中,让该类可以使用元对象的特性,比如动态属性,信号和槽。3.编译器:元对象编译器(moc)为每个QObject子对象自动生成必要的代码来实现元对象特性。moc工具会读入C++的源文件,如果它发现了一个或者多个声明了Q_OBJECT宏的类,它就创建另一个C++源文件,为每个类生成包含元对象实现的代码。这些编译生成的源文件通常都已经被包含到类的源文件中或者和类的实现同时被编译和链接。除了为对象间的通信提供信号和槽(signals and slot 阅读全文
posted @ 2011-07-12 15:37 hnrainll 阅读(7802) 评论(0) 推荐(2) 编辑
上一页 1 ··· 40 41 42 43 44 45 46 47 48 ··· 71 下一页