lionel chang

导航

2012年10月7日 #

编译器项目

摘要: http://www.doc88.com/p-746877566840.html 阅读全文

posted @ 2012-10-07 23:15 woshizyl 阅读(129) 评论(0) 推荐(0) 编辑

web服务器的实现

摘要: 参考:http://wenku.baidu.com/view/2414262c3169a4517723a357.html 阅读全文

posted @ 2012-10-07 15:45 woshizyl 阅读(105) 评论(0) 推荐(0) 编辑

2012年10月5日 #

BT下载项目简介

摘要: 该项目由三部分组成:文件解析模块,连接建立模块和数据传送模块。一.文件解析模块二.连接建立模块概述:构造HTTP的GET请求报文,取得各个下载者的IP地址和端口号。问题:1.HTTP协议(1).协议的格式包括请求报文和响应报文,请求报文由本软件构造,响应报文由服务器端构造。对响应报文使用tcpdump抓包,具体命令为:tcpdump -A tcp port 80(2)协议的字段信息a.connection指定为长连接与短连接,只有HTTP/1.1才能支持。若为长连接则填写keepalive,短连接则填写close.b.cookie首次登录一个使用cookie的网站时,网站会产生一个唯一的识别码 阅读全文

posted @ 2012-10-05 11:40 woshizyl 阅读(186) 评论(0) 推荐(0) 编辑

2012年10月4日 #

网络编程面试题

摘要: 基础部份:1.下列程序在32位linux或unix中的结果是什么? func(char *str){ printf("%d",sizeof(str)); printf("%d",strlen(str));} main(){ char a[]="123456789"; printf("%d",sizeof(a)); func(a);}答:10 4 92.int delete(node * head){ free(head); head=head-link;return(0);}指出程序的错误,并且写出正确的程序答:f 阅读全文

posted @ 2012-10-04 23:18 woshizyl 阅读(211) 评论(0) 推荐(0) 编辑

收藏一些qq面试题

摘要: 电话面试1:虚函数原理?有何用?(辅助实现设计模式) 虚表,编译器绑定到虚表中的指定项。 同样虚函数也如此,编译器已经算好了虚函数在虚表中的位置。只是由于只是由于每个类的指向虚表的指针不一样,才产生了多态的行为。2:指针背后的秘密? 指针能指向东西,是因为编译期,编译器已经算好了指针指向成员变量的偏移地址,所以其能实现指向某个东西的能力。2:了解哪些设计模式?举例。比如项目中用到的。1:select epool。2:c99的标准 对数组有什么增强?面对面面3:应用层如何到达网络层。|4:有100万个文件,如果通过shell删除其中以filename开头的文件5:http对一个域名最多几个并发请 阅读全文

posted @ 2012-10-04 22:17 woshizyl 阅读(134) 评论(0) 推荐(0) 编辑

端口查看和复用

摘要: 端口查看1.查看端口信息有三种方式:a.netstatb.lsofc./etc/services2.端口复用使用setsockopt()函数的SO_REUSEADDR和SO_REUSEPORT选项。 阅读全文

posted @ 2012-10-04 18:17 woshizyl 阅读(221) 评论(0) 推荐(0) 编辑

UDP调用connect()的作用

摘要: 我们都知道,UDP是无连接的,但是为什么协议让UDP也可以调用connect()?1.因为UDP可以是一对一,多对一,一对多,或者多对多的通信,所以每次调用sendto()/recvfrom()时都必须指定目标IP和端口号。通过调用connect()建立一个端到端的连接,就可以和TCP一样使用send()/recv()传递数据,而不需要每次都指定目标IP和端口号。但是它和TCP不同的是它没有三次握手的过程。2.还可以通过在已建立连接的UDP套接字上,再次调用connect()实现以下功能:a.指定新的IP地址和端口号。b.断开连接。这也与TCP有所不同,TCP套接字只能调用一次connect( 阅读全文

posted @ 2012-10-04 17:25 woshizyl 阅读(1095) 评论(0) 推荐(0) 编辑

2012年10月3日 #

select,poll,epoll总结

摘要: select,poll,epoll这三个函数是服务器端开发必须要精通的函数,而且也是面试中常会问到的知识。其中select和poll的功能比较相似,而epoll是linux所特有的,是linux对poll的改进版。以下是这三个函数的主要特点:select:1.select对每个所监视的描述符进行轮循,当描述符增加时,select的效率就会下降;2.select所能监视的描述符是有上限的3.在用户态和内核态之间传送文件描述符集的数据结构的开销是比较大的。poll:1.与select的第一点相同;2.监视的描述符没有最大限制,因为使用的是链表的方式3.与select的第三点大致相同,但poll传递 阅读全文

posted @ 2012-10-03 15:55 woshizyl 阅读(189) 评论(0) 推荐(0) 编辑

tcp长连接与短连接

摘要: 长连接就是在TCP建立连接后,读写一次数据完成之后并不立即释放连接,而短连接是在一次TCP连接之后只进行一次数据的读写就释放连接。编程中要使一个套接字所建立的连接成为长连接,可以使用setsockopt()函数。它使用的是TCP的keepalive定时功能,利用sysctl -a|grep tcp_keepalive可以查看内核中对keepalive的设置。net.ipv4.tcp_keepalive_time = 7200net.ipv4.tcp_keepalive_probes = 9net.ipv4.tcp_keepalive_intvl = 75以上是keepalive的三个属性设置。 阅读全文

posted @ 2012-10-03 14:37 woshizyl 阅读(214) 评论(0) 推荐(0) 编辑

2012年9月30日 #

我的五面经历--腾讯 百度 支付宝 阿里巴巴

摘要: 我今年大四,也许是人品爆发,找工作一共面试了5家公司,都比较顺利。下面我就回顾一下我这一个月来找工作的情景。找工作的先准备简历,我的简历就一张单面A4纸,大概说了一下自己的个人履历,爱好特长,也说了下获奖情况,总之都比较简要,属于很通的那种,放到应聘的茫茫人海中毫无突出点。然后就是面试第一步自我介绍,我从来没有刻意准备过自我介绍,没有提前背过一段自我总结的话,我自我介绍的时间一般相对较短,控制在三分钟内吧。一般会针对我应聘的职位用2分钟说自己的擅长方面和与别的应聘者比较可能的优势,用1分钟左右谈我对这个职位的理解和与别的应聘者比我可能的不足。下面是我阿里巴巴面试时的大概自我介绍,我面试别的公司 阅读全文

posted @ 2012-09-30 23:40 woshizyl 阅读(374) 评论(0) 推荐(0) 编辑