`
kenby
  • 浏览: 717229 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
struct hostent *gethostbyname(const char *name); gethostbyname函数根据域名解析出服务器的ip地址,它返回一个结构体struct hostent: #include <netdb.h> struct hostent { char *h_name; /* official name of host */ char **h_aliases; /* alias list */ int h_addrtype; /* host address t ...
struct sockaddr和struct sockaddr_in这两个结构体用来处理网络通信的地址。 在各种系统调用或者函数中,只要和网络地址打交道,就得用到这两个结构体。 网络中的地址包含3个方面的属性: 1 地址类型: ipv4还是ipv6 2 ip地址 3 端口 相应的,头文件有如下定义:   include <netinet/in.h> struct sockaddr { unsigned short sa_family; // 2 bytes address family, AF_xxx char ...
Mongoose的认证方式跟apache的htdigest认证相似 生成密码文件 ./mongoose -A /home/kenby/mongoose/htpasswd localhost kenby yejinhui mongoose采用md5加密 cat /home/kenby/mongoose/htpasswd kenby:localhost:96c98c81d5c6019724350f98f93b6b46 启动服务器 ./mongoose -R localhost -g /home/kenby/mongoose/htpasswd
基础知识  1) 什么是”Last-Modified”?  在浏览器第一次请求某一个URL时,服务器端的返回状态会是200,内容是你请求的资源,同时有一个Last-Modified的属性标记此文件在服务期端最后被修改的时间,格式类似这样:  Last-Modified: Fri, 12 May 2006 18:53:33 GMT  客户端第二次请求此URL时,根据 HTTP 协议的规定,浏览器会向服务器传送 If-Modified-Since 报头,询问该时间之后文件是否有被修改过:  If-Modified-Since: Fri, 12 May 2006 18:53:33 GMT  如果服 ...
如果不知道dict中是否有key的值,那么最好用 dict.get(key) 如果用dict[key]这个读取会报KeyError异常, dict.get方法主要是提供一个取不到对应key的value就返回默认值的功能, 而dict[key]实际上是调用了__getitem__方法
    1 不要让技术限制你的职业和人生,技术固然重要,但更重要的是你做的事情,一味地固执下去只会使视野越来越狭窄。       2 回想起来我固执了好多年,今天才幡然醒悟,记得大三的时候小胖和逮哥叫我一起参加一个软件设计大赛,小胖问我有没 有兴趣,我想都没想,直接就拒绝了,因为他们采用java开发,那个时候我正打算独自研究网络编程,不想把时间浪费在对技 术没有提高的项目上,就这样我错过了一个有意思的项目。       3 总结研一大半年的时间,我几乎把全部精力花在学习算法上,我明显的感受到coding能力上了一个档次,但是这种学习 是急功近利的,大部分的学习只是为了把题目做出来, ...
20道选择题,每题3分,共60分 内容涉及:1道概率论题目、数据结构与算法、操作系统、计算机网络 1 概率计算题:4个电阻A、B、C和D,B与C并联后又与A和D串联。 已知B,C,A的可靠性分别为0.7, 0.7, 0.9,问:为了使整个电路的可靠性 不小于0.95,D的可靠性至少为多少?   2 MD5算法产生的密钥有多少个比特?   3 已知一个序列的前4趟排序结果,问用的是什么排序方法?   4 对一个序列使用快速排序,第一趟的结果是什么?   5 给定学生和成绩的数据库表,写一个sql语句求出每门课程的平均分   6 TCP socket连接完毕后,关于sen ...
今天写二叉树的时候遇到一个小问题,写了一个create_node函数用来创建一个二叉树的节点。代码如下:     void create_node(node_t **pnode)  { node_t *tmp;   tmp = *pnode; tmp = (node_t *)malloc(node_t);         tmp->data = 3333; }   用如下方式调用:     node_t *node = NULL; create_node(&node);   我的目标是创建一个节点,数据为3333,然后把node指向该节点, ...
简答题 1 extern "C" {}的含义是什么?用途是什么? 2 请至少说出2种经典设计模式,说明其应用场景,能够用伪代码说明最好 3 TCP连接time_wait状态的发生场景,以及作用   算法与程序设计 1 拓扑排序 2 字符串处理   系统设计题 海量访问日志的查询
一 给定a、b两个文件,各存放50亿个url,每个url各占用64字节,内存限制是4G,如何找出a、b文件共同的url? 两个50亿个url的文件,大概有50 0000 0000 * 64 B = 640G的大小,肯定不能全部读入内存,可以分组解决 准备1030个桶,读取 ...
现在有一个整数数组,已知一个数出现的次数超过了一半,请用O(n)的复杂度的算法找出这个数。   算法:充分利用出现次数超过一半这个特点,使用两个变量candidate和vote,分别代表候选人和票数,遍历数组 按如下方式投票和更换候选人:   若当前数与候选人一样,则把候选人的票数加1 若当前数与候选人不一样, 则把它的票数减1,如果减掉后票数小于0,则把候选人踢掉,用当前数作为新的候选人   最后剩下的候选人就是出现次数超过一半的数。   算法的正确性证明: 数组中,数值相同的数都会投赞成票,数值不同的都会投反对票,有一个数出现的次数超过一半, 其它数得到的反对票必然大于 ...
题目:5亿个int,从中找出第k大的数   算法:之后补上。。。   实现:   #include <assert.h> #include <fcntl.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/time.h> #include <sys/types.h> #include <sys/stat.h> ty ...
题目:100亿个整数,求最大的1万个数,并说出算法的时间复杂度   算法:如果把100亿个数全部读入内存,需要100 0000 0000 * 4B 大约40G的内存,这显然是不现实的。 我们可以在内存中维护一个大小为10000的最小堆,每次从文件读一个数,与最小堆的堆顶元素比较,若比堆顶元素大, 则替换掉堆顶元素,然后调整堆。最后剩下的堆内元素即为最大的1万个数,算法复杂度为O(NlogN)   实现:从文件读数据有讲究,如果每次只读一个数,效率太低,可以维护一个输入缓冲区,一次读取一大块数据到内存, 用完了又从文件接着读,这样效率高很多,缓冲区的大小也有讲究,一般要设为4KB的整 ...
    KMP算法曾被我戏称为看毛片算法,当时笑喷......大三那个时候硬着头皮把算法导论的kmp算法啃完,弄懂了kmp算法 的原理,甚至还写出了代码,这几天再次温习的时候,发现忘得比较彻底。我总结,学算法不能只对着书本学理论,而应该 用自己的理解去看清算法的本质,最好用文字把你的理解记录下来,这样才能做到活学活用,而且不容易忘。写这篇博客就是想把自己这几天的思路记下来。   一 kmp算法为什么比传统的字符串匹配算法快 假设文本T = y1y2y3....yn, 模式 P = p1p2p3...pm, 传统的匹配算法把位移为0,1,...n-m时的文本依次跟P比较,每次比较最多花费 ...
一 外部排序的基本思路 假设有一个72KB的文件,其中存储了18K个整数,磁盘中物理块的大小为4KB,将文件分成18组,每组刚好4KB。 首先通过18次内部排序,把18组数据排好序,得到初始的18个归并段R1~R18,每个归并段有1024个整数 ...
Global site tag (gtag.js) - Google Analytics