上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 26 下一页
摘要: svnadmin与svnserve建立代码仓库 1. 假设当前目录为/data/ 2. 建立文件夹: mkdir repos 3. 创建仓库: (1) cd /data/repos/ (2) svnadmin create myproj 4. 启动svn server: svnserve -d -r /data/repos/ 5.客户端check out: svn co svn://1... 阅读全文
posted @ 2013-04-19 14:11 ydzhang 阅读(195) 评论(0) 推荐(0)
摘要: 以前学C++时记的比较,因最近开发用C++较多,把笔记翻出来复习了一下,跟大家分享一下。类的声明及定义 1. class、struct、union保留字都可以用来声明和定义类。class中成员默认为private类型,struct、union与C语言兼容,成员默认为public类型。 2. 只有当类没有显式的定义构造/析构函数时,C++才会提供默认的构造/析构函数;默认的构造函数只负责创建... 阅读全文
posted @ 2013-04-19 14:11 ydzhang 阅读(191) 评论(0) 推荐(0)
摘要: Protocol buffer是google开源的又一利器,主要用于结构化数据存储与数据交换,类似于XML,但相比XML,它更小、更快、也更简单,只需使用protobuf对数据结构进行一次描述,即可利用各种不同的语言(包括C++、java、python等,同时还包括很多种语言的绑定插件)从各种不同的数据流(文件、字符串流等)对结构化数据轻松读写。但由于其使用二进制存储,相比XML,其可读性差。 ... 阅读全文
posted @ 2013-04-19 14:10 ydzhang 阅读(4198) 评论(0) 推荐(0)
摘要: Slab分配器把对象分组放进高速缓存(cache),以避免重复初始化对象。slab分配器并不丢弃已分配的对象,而是释放并把它们保存在内存中。当以后又要请求新的对象时,就可以从内存直接获取而不用重复初始化。 对象高速缓存的组织如下图所示,高速缓存的内存区被划分为多个slab,每个slab由一个或多个连续的页框组成,这些页框中既包含已分配的对象,也包含空闲的对象。 FQL同学问了个问题,说... 阅读全文
posted @ 2013-04-19 14:10 ydzhang 阅读(469) 评论(0) 推荐(0)
摘要: 1. 打印错误信息 如果程序的执行必须要求某个宏被定义,在检查到宏没有被定义是可以使用#error,#warning打印错误(警告)信息,如: #ifndef __unix__#error "This section will only work on UNIX systems"#endif 只有__unix__宏被定义,程序才能被正常编译。 2. 方便调试 __FILE, __LINE, __... 阅读全文
posted @ 2013-04-19 14:10 ydzhang 阅读(224) 评论(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 阅读(350) 评论(0) 推荐(0)
摘要: getaddrinfo是在gethostbyname系列函数不支持Ipv6的情况下逐渐催生的,其能够处理名字到地址以及服务到端口这两种转换,返回一个sockaddr结构的链表,这些sockaddr地址结构随后可有套接口函数(socket、bind、connect、listen等)直接调用,将协议相关性隐藏在该函数内部。应该尽量选择使用getaddrinfo函数代替之前的getxx函数族,就像应该使... 阅读全文
posted @ 2013-04-19 14:10 ydzhang 阅读(1819) 评论(0) 推荐(1)
摘要: 1. 重用已使用的地址 问题描述:在刚刚关闭了测试程序后,再启动服务器时提示bind失败,返回错误EADDRINUSE。 原因分析:套接字(主动关闭一端)在关闭套接字后会停留在TIME_WAIT状态一端时间,由于我在同一机器上同时运行客户端与服务器,故服务器在重新启动执行bind时,可能上次关闭连接还没有完成,连接依然存在,故bind失败。通过设置套接口的SO_REUSEADDR可重用已绑定的... 阅读全文
posted @ 2013-04-19 14:10 ydzhang 阅读(151) 评论(0) 推荐(0)
摘要: 实线:表示客户的正常状态转换 虚线:表示服务器的正常状态装换 应用:表示状态转换在应用进程发起操作时发生 接受:表示状态转换在接受到分节时发生 发送:表示这个转换发送什么 三次握手建立连接 服务器调用socket、bind、listen来完成,即执行被动打开,准备好接受外来的请求。 1.客户端发调用connect发送SYN分节(同步),它告诉服务器客户将在连接中发送的数据的初始... 阅读全文
posted @ 2013-04-19 14:10 ydzhang 阅读(268) 评论(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 阅读(340) 评论(0) 推荐(0)
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 26 下一页