上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 26 下一页
摘要: 1. linux提供opendir、readdir(readdir_r)、closedir和scandir等接口实现对目录的读取;2. readdir返回指向下一个目录项的指针,如果要自己传入缓冲区存储目录项,应使用readdir_r代替。readdir的结果中包含当前目录和上一级目录的目录项信息。3. 在遍历过程中,进程的工作目录不会改变,在递归遍历的时候,需要改变工作目录(chdir)以识别相对路径,或者每次都限定全局路径。4. 深度优先遍历目录树采用递归实现易编码(参见如下代码),广度优先遍历则需借助队列实现。当目录下的文件数量较少时,采用广度优先遍历效率会更高,因目录下的目录项基本都是 阅读全文
posted @ 2013-04-19 14:11 ydzhang 阅读(1084) 评论(0) 推荐(0)
摘要: 当Web服务器、文件服务器、游戏服务器等的用户数不断增加时,单服务器模型肯定不能完全满足服务的需求,集群服务模式已经逐渐普及,使用服务器集群做后台,一个主要的问题就是要解决负载均衡问题。 负载均衡算法主要分为两种,持续性和非持续性的负载均衡,持续性是指特定客户端发出的请求将由同一服务器服务。持续性算法主要基于随机理论,即其默认客户的访问时随机的,从而服务器的选择也是随机的,以此来实现负载均衡。... 阅读全文
posted @ 2013-04-19 14:11 ydzhang 阅读(542) 评论(0) 推荐(0)
摘要: 这两天先后参加百度腾讯的实习生招聘笔试,不幸的是,昨天肚子不舒服,后来引发高烧,百度的笔试是在高烧39度的情况下完成的,题目一做完我就立马撤回宿舍睡觉了。由于今天要参加腾讯的笔试,怕高烧不退,昨晚去校医院检查了下,吃了点药,今早除了胃口不大好,其他都还不错,运气还不算很差。 参加完两大巨头的笔试,发现两者笔试风格迥异,百度全部是主观题,而腾讯则全是客观题(除最后的附加题外)。笔试题目出得还是相... 阅读全文
posted @ 2013-04-19 14:10 ydzhang 阅读(404) 评论(0) 推荐(0)
摘要: 最近遇到一个问题:大批量的文件,每个文件除了拥有类似于linux中struct stat中的一些基本的元数据外,还存在一系列的key/value对的扩展属性,现在的需求是,根据用户提供的key/value对,快速检索出匹配的文件集。 对于搜索来说,暴力搜索无疑是万能的,遍历所有的目标并逐个进行匹配,肯定能得出结果,比如linux下的find工具就是采用这种方式找出特定文件的。在匹配的过程中,查... 阅读全文
posted @ 2013-04-19 14:10 ydzhang 阅读(366) 评论(0) 推荐(0)
摘要: 1. read系统调用 测试程序:客户端向服务器端(tcp)发送一个”hello”字符串,服务器端读取并echo到客户端。 服务器端主要代码: char buf[4096]; int r = tcp_readn(sock, buf, 4096); int w = tcp_writen(sock, buf, r); 客户端主要代码: char buf[4096]; int w... 阅读全文
posted @ 2013-04-19 14:10 ydzhang 阅读(338) 评论(0) 推荐(0)
摘要: xinetd是inetd超级服务器的升级版,相当于inetd + tcp wrapper,将服务管理与访问控制结合在一起。在介绍inetd之前,先看一个xinetd的实例(我的机器上只有xinetd,关于inetd的配置参考UNP 325页)。 xinet配置实例 为xinetd添加myecho服务(将客户端发来的请求消息回送给客户端)。 1. 在/etc/services中添加myec... 阅读全文
posted @ 2013-04-19 14:10 ydzhang 阅读(344) 评论(0) 推荐(0)
摘要: getaddrinfo是在gethostbyname系列函数不支持Ipv6的情况下逐渐催生的,其能够处理名字到地址以及服务到端口这两种转换,返回一个sockaddr结构的链表,这些sockaddr地址结构随后可有套接口函数(socket、bind、connect、listen等)直接调用,将协议相关性隐藏在该函数内部。应该尽量选择使用getaddrinfo函数代替之前的getxx函数族,就像应该使... 阅读全文
posted @ 2013-04-19 14:10 ydzhang 阅读(1792) 评论(0) 推荐(1)
摘要: 1. 重用已使用的地址 问题描述:在刚刚关闭了测试程序后,再启动服务器时提示bind失败,返回错误EADDRINUSE。 原因分析:套接字(主动关闭一端)在关闭套接字后会停留在TIME_WAIT状态一端时间,由于我在同一机器上同时运行客户端与服务器,故服务器在重新启动执行bind时,可能上次关闭连接还没有完成,连接依然存在,故bind失败。通过设置套接口的SO_REUSEADDR可重用已绑定的... 阅读全文
posted @ 2013-04-19 14:10 ydzhang 阅读(149) 评论(0) 推荐(0)
摘要: 实线:表示客户的正常状态转换 虚线:表示服务器的正常状态装换 应用:表示状态转换在应用进程发起操作时发生 接受:表示状态转换在接受到分节时发生 发送:表示这个转换发送什么 三次握手建立连接 服务器调用socket、bind、listen来完成,即执行被动打开,准备好接受外来的请求。 1.客户端发调用connect发送SYN分节(同步),它告诉服务器客户将在连接中发送的数据的初始... 阅读全文
posted @ 2013-04-19 14:10 ydzhang 阅读(262) 评论(0) 推荐(0)
摘要: 从第一次接触linux到现在也有三四年的时间了,小雅姐最近发起了一个linux技术征文比赛,为了表示对她工作的支持,把这些年自己在使用linux过程中的一些小技巧跟大家分享一下,希望对linux爱好者们有帮助。(注:本人常年使用Fedora) 1. 为了系统数据的安全,不要使用root用户登录,应创建自己的账户,一般的工作都用普通账户完成,当需要执行管理员权限的工作时,再切换到root。 2. ... 阅读全文
posted @ 2013-04-19 14:10 ydzhang 阅读(256) 评论(0) 推荐(0)
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 26 下一页