摘要:第一章 简介第一章对Unix下的网络编程做了概要的介绍,使用了获取时间的实例来讲解网络编程中所需要使用到的函数和注意内容,并详细的解析了每个函数的功能及其使用。由于之前已经谈过简单TCP通信的实现,这里便不再赘述。TCP下的日期/时间 客户端TCP下的日期/时间 服务器第二章传输层:TCP和UDP一 协议介绍UDP不可靠,数据报,TCP可靠,字节流,面向连接,全双工,支持ACK、超时重传,需要保证消息独立性ICMP网际控制消息协议,处理路由器和主机间的错误和控制信息IGMP网络组管理协议ARP地址解析协议,将IPv4地址映射到硬件地址RARP逆地址解析BPFBSD分组过滤器,为进城提供访问数据 阅读全文
《深入理解Linux内核》学习笔记-第一章
2011-08-26 01:11 by Aga.J, 704 阅读, 0 推荐, 收藏, 编辑
摘要:第一章 绪论(1) 类Unix操作系统采用“进程/内核”的模式,每个进程都自以为它是系统中唯一的进程,可独占操作系统所提供的服务,只要进程发出系统调用,硬件就会把特权模式由用户态转变为内核态,然后进程开始执行一个内核过程,这个过程的执行被局限于一个非常小的内核范围内,一旦请求被满足,内核过程迫使返回用户态,进程执行下一条指令(2) Unix文件是以一列字节组成的信息载体,内核不解释文件内容(3) unix的每个进程都有一个当前的工作目录,它属于进程执行上下文,标志出进程所用的当前目录(4) Unix文件类型包括:普通文件,目录,符号链接,块设备文件,字符设备文件,管道,命名管道,套接字(5) 阅读全文
谈谈linux上的并发(网络资源总结)
2011-08-26 01:10 by Aga.J, 1354 阅读, 0 推荐, 收藏, 编辑
摘要:“并发”一词可能会误导很多人,实际上在单核的机器上并发是通过分时运行来模拟的,称为Concurrency,而在多核的机器上才可实现真正的并发,称为Parallelism。下面逐步介绍Linux上的IO模型,从而解析并发策略:(一) 阻塞I/O模型:分析:使用recvfrom,执行系统调用函数,陷入到内核中,内核等待数据报到来,这个时候用户进程被阻塞,直到内核拿到数据报后,拷贝到用户空间的缓冲区上,并通知用户空间进程数据报拷贝完成,这种阻塞I/O模式不适合多用户请求的环境。(二) 非阻塞I/O模型:分析:和“阻塞IO模型”不一样,非阻塞IO模型会收到内核的无数据报消息,防止进程一直阻塞在上面,接 阅读全文
select,epoll,poll比较(网络资源总结)
2011-08-26 01:09 by Aga.J, 2370 阅读, 2 推荐, 收藏, 编辑
摘要:select,poll,epoll简介selectselect本质上是通过设置或者检查存放fd标志位的数据结构来进行下一步处理。这样所带来的缺点是:1 单个进程可监视的fd数量被限制2 需要维护一个用来存放大量fd的数据结构,这样会使得用户空间和内核空间在传递该结构时复制开销大3 对socket进行扫描时是线性扫描pollpoll本质上和select没有区别,它将用户传入的数组拷贝到内核空间,然后查询每个fd对应的设备状态,如果设备就绪则在设备等待队列中加入一项并继续遍历,如果遍历完所有fd后没有发现就绪设备,则挂起当前进程,直到设备就绪或者主动超时,被唤醒后它又要再次遍历fd。这个过程经历了 阅读全文
lighttpd高性能Web服务器源码分析?坑爹啊,原来是light httpd!-0 -
2011-08-10 16:40 by Aga.J, 19976 阅读, 1 推荐, 收藏, 编辑
摘要:最近刚打算学unix网络编程,所以做了点入门的准备后,就找了个轻量级的web服务器的源码来看,听网上介绍说lighttpd不错,所以我找了一下,把所谓的源码下了下来,研究了一下,最后发现哥玩的是light httpd(http://lhttpd.sourceforge.net/docs.html)不是lighttpd(http://www.lighttpd.net/),坑爹啊!!!尼玛怎么长那么像啊!! 所以下面说的全是light httpd的源码分析,要看lighttpd的同学就等我有空再贴文章吧。 (1)先看热闹 上 light httpd官方网址(http://lhttpd.sourc. 阅读全文
求Linux C++高手解答
2011-08-04 19:57 by Aga.J, 655 阅读, 0 推荐, 收藏, 编辑
摘要:问题如下,今天整天就耗在和它有关的地方上了……#include<stdio.h> #include<string.h> #include<errno.h> #include<unistd.h> #include<fcntl.h>void main() { char *buf="hello\n"; int len=strlen(buf); close(1); FILE* fd0=freopen("/dev/tty","w",stdout); write(1,buf,len+1) 阅读全文
【转】IMO2011趣题:总存在一条将会遍历所有点的直线
2011-07-30 12:52 by Aga.J, 526 阅读, 1 推荐, 收藏, 编辑
摘要:原文链接:http://www.matrix67.com/blog/archives/4511下面这个精彩的问题来自于刚刚结束的 IMO 2011 中的第 2 题:设 S 是平面上包含至少两个点的一个有限点集,其中没有三点在同一条直线上。所谓一个“风车”是指这样一个过程:从经过 S 中单独一点 P 的一条直线 l 开始,以 P 为旋转中心顺时针旋转,直至首次遇到 S 中的另一点,记为点 Q 。接着这条直线以 Q 为新的旋转中心顺时针旋转,直到再次遇到 S 中的某一点,这样的过程无限持续下去。证明:可以适当选取 S 中的一点 P ,以及过 P 的一条直线 l ,使得由此产生的“风车”将 S 中的 阅读全文
老大让我学Linux之练笔作业:过时文件删除脚本,日志监控程序
2011-07-29 16:29 by Aga.J, 773 阅读, 0 推荐, 收藏, 编辑
摘要:练笔作业1: 要求使用脚本将某个目录下前两天的文件删除实现: #!/bin/bash threshold=$(date --date='2 days ago' +%Y-%m-%d) directory=testDir cd /$directory ls -l | awk '{v0="rm -r"; v1=$8; if ($6!="" && $6<"'"$threshold"'") {print "delete ",$8;system( 阅读全文
最近很郁闷,发下大学最后一次学期考试成绩激励自己
2011-07-27 12:30 by Aga.J, 348 阅读, 0 推荐, 收藏, 编辑
摘要:排名22,34那两门课是不用考试的,排名38那门课我就想不明白了,考试感觉还可以,结果很意外纯属情绪发泄,不是炫耀,大学的考试很简单 阅读全文
垂直狭义SNS
2011-07-22 15:47 by Aga.J, 236 阅读, 0 推荐, 收藏, 编辑
摘要:在泛SNS的大潮下(Google+,Facebook,人人,新浪微博等),似乎没有人发现SNS还有某些精华没有被挖掘,秘密启动项目来完成这样一个狭义SNS。(ps:整个开发过程-从需求到产品交付-我抛弃了以前经常使用的较重的开发过程,时间不多精力不多,所有东西都是追求简单,这也必然带来很多错误)。 (一) Idea是我很久前想到的(其实还有很多Idea),今天决定实现它,使用PPT的形式勾勒出基本设想的场景和交互过程。PPT里面简单的图片可以帮助我们很快的画出界面原型,然后再加上超链接的动作,这样我们就完成了一个可见可交互的系统原型 (二) 当然,PPT制作只是为了挖掘更多idea,发现这个. 阅读全文