上一页 1 ··· 40 41 42 43 44 45 46 47 48 ··· 71 下一页
摘要: BT种子文件使用了一种叫bencoding的编码方法来保存数据。bencoding现有四种类型的数据:srings(字符串),integers(整数),lists(列表),dictionaries(字典)编码规则如下:strings(字符串)编码为:<字符串长度>:<字符串>例如: 4:test 表示为字符串test 4:例子 表示为字符串“例子”字符串长度单位为字节没开始或结束标记integers(整数)编码为:i<整数>e开始标记i,结束标记为e例如: i1234e 表示为整数1234 i-1234e 表示为整数-1234整数没有大小限制 i0e 表示为 阅读全文
posted @ 2011-07-26 17:09 hnrainll 阅读(18682) 评论(0) 推荐(0) 编辑
摘要: /* ************************************************************************ * 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 阅读(1722) 评论(0) 推荐(0) 编辑
摘要: 值-结果参数(socket编程中一到七的structsockaddr_in的长度参数)1.概念:当函数参数是从内核到进程时,函数被调用时参数大小是一个值,它告诉内核该参数的结构大小避免内核写操作越界,函数返回时,参数的结构大小又是一个结果,它告诉进程内核写进数据的多少,这种参数叫做值-结果参数。2.例子:八个socket编程中涉及的函数中,总是通过指针来传递指向结构的指针。同时结构的长度也作为参数来传递,但是其传递的方法取决于结构的传递方向:侍从内核到进程还是从进程到内核。详细如下:1>.参数从进程到内核:bind、connect从进程到内核传递参数,它明确知道要拷贝多少以及拷贝的数据。 阅读全文
posted @ 2011-07-25 21:37 hnrainll 阅读(628) 评论(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 阅读(1145) 评论(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 阅读(2025) 评论(0) 推荐(0) 编辑
摘要: 描述popen() 函数 用 创建管道 的 方式启动一个 进程, 并调用 shell. 因为 管道是被定义成单向的, 所以 type 参数 只能定义成 只读或者 只写, 不能是 两者同时, 结果流也相应的 是只读 或者 只写. command 参数 是 一个 字符串指针, 指向的是一个 以 null 结束符 结尾的字符串, 这个字符串包含 一个 shell 命令. 这个命令 被送到 /bin/sh 以 -c 参数 执行, 即由 shell 来执行. type 参数 也是 一个 指向 以 null 结束符结尾的 字符串的指针, 这个字符串 必须是 'r' 或者 'w’ 来 阅读全文
posted @ 2011-07-23 14:44 hnrainll 阅读(46343) 评论(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 阅读(24262) 评论(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 阅读(13053) 评论(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 阅读(8371) 评论(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 阅读(112841) 评论(2) 推荐(2) 编辑
摘要: HTTP协议是什么?简单来说,就是一个基于应用层的通信规范:双方要进行通信,大家都要遵守一个规范,这个规范就是HTTP协议。HTTP协议能做什么?很多人首先一定会想到:浏览网页。没错,浏览网页是HTTP的主要应用,但是这并不代表HTTP就只能应用于网页的浏览。HTTP是一种协议,只要通信的双方都遵守这个协议,HTTP就能有用武之地。比如咱们常用的QQ,迅雷这些软件,都会使用HTTP协议(还包括其他的协议)。HTTP协议如何工作?大家都知道一般的通信流程:首先客户端发送一个请求(request)给服务器,服务器在接收到这个请求后将生成一个响应(response)返回给客户端。在这个通信的过程中H 阅读全文
posted @ 2011-07-22 08:58 hnrainll 阅读(289) 评论(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 阅读(2764) 评论(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 阅读(1471) 评论(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 阅读(6701) 评论(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 阅读(5721) 评论(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 阅读(2230) 评论(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 阅读(2733) 评论(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 阅读(14976) 评论(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 阅读(2425) 评论(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 阅读(1751) 评论(0) 推荐(0) 编辑
上一页 1 ··· 40 41 42 43 44 45 46 47 48 ··· 71 下一页