上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 26 下一页
  2013年7月13日
摘要: #include int setsockopt( int socket, int level, int option_name,const void *option_value, size_t option_len); 第一个参数socket是套接字描述符。第二个参数level是被设置的选项的级别,如果想要在套接字级别上设置选项,就必须把level设置为 SOL_SOCKET。option_name指定准备设置的选项,option_name可以有哪些取值,这取决于level,以linux 2.6内核为例(在不同的平台上,这种关系可能会有不同),在套接字级别上(SOL_SOCKET),optio 阅读全文
posted @ 2013-07-13 18:07 陈孝勇 阅读(2430) 评论(0) 推荐(0) 编辑
摘要: setsockopt设置套接口的选项。#include #include intsetsockopt(int sockfd, int level, int optname,const void *optval, socklen_t optlen);sockfd:标识一个套接口的描述字。level:选项定义的层次;支持SOL_SOCKET、IPPROTO_TCP、IPPROTO_IP和IPPROTO_IPV6。optname:需设置的选项。optval:指针,指向存放选项值的缓冲区。optlen:optval缓冲区长度。linux内核中定义为:static intsetsockopt(struc 阅读全文
posted @ 2013-07-13 18:05 陈孝勇 阅读(407) 评论(0) 推荐(0) 编辑
摘要: socket函数简介应用程序调用socket函数来创建一个能够进行网络通信的套接字。12345/* 头文件 */#include #include /* 函数原型 */int socket(int domain, int type, int protocol);第一个参数指定应用程序使用的通信协议的协议族,对于TCP/IP协议族,该参数置AF_INET;第二个参数指定要创建的套接字类型,流套接字类型为SOCK_STREAM、数据报套接字类型为SOCK_DGRAM、原始套接字SOCK_RAW(WinSock接口并不适用某种特定的协议去封装它,而是由程序自行处理数据包以及协议首部);第三个参数指定 阅读全文
posted @ 2013-07-13 18:01 陈孝勇 阅读(177) 评论(0) 推荐(0) 编辑
  2013年6月27日
摘要: 已知 char *str1="absde"; char str2[]="absde"; char str3[8]={'a',}; char ss[] = "0123456789"; sizeof(str1)=4 sizeof(str2)=6; sizeof(str3)=8; sizeof(ss)=11解析:首先说明一点,char类型占一个字节,所以sizeof(char)是1,这点要理解str1是一个指针,只是指向了字符串"absde"而已。所以sizeof(str1)不是字符串占的空间也不是字符数 阅读全文
posted @ 2013-06-27 00:37 陈孝勇 阅读(273) 评论(0) 推荐(0) 编辑
  2013年6月14日
摘要: 事件对象就像一个开关:它只有两种状态---开和关。当一个事件处于”开”状态,我们称其为”有信号”否则称为”无信号”。可以在一个线程的执行函数中创建一个事件对象,然后观察它的状态,如果是”无信号”就让该线程睡眠,这样该线程占用的CPU时间就比较少。产生事件对象的函数如下:HANDLE CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes, // SD BOOL bManualReset, // reset type BOOL bInitialState, // initia... 阅读全文
posted @ 2013-06-14 14:52 陈孝勇 阅读(748) 评论(0) 推荐(0) 编辑
摘要: #ifndef todo# define __STR2__(x) #x# define __STR1__(x) __STR2__(x)# define __LOC__ __FILE__ "("__STR1__(__LINE__)") : Warning Msg: "# define __LOC2__ __FILE__ "("__STR1__(__LINE__)") : <TODO> "# define todo(str) message (__LOC2__ str)#endif#endif然后,在需要的 阅读全文
posted @ 2013-06-14 11:59 陈孝勇 阅读(176) 评论(0) 推荐(0) 编辑
  2013年6月13日
摘要: reinterpret_cast <new_type> (expression)reinterpret_cast运算符是用来处理无关类型之间的转换;它会产生一个新的值,这个值会有与原始参数(expressoin)有完全相同的比特位。什么是无关类型?我没有弄清楚,没有找到好的文档来说明类型之间到底都有些什么关系(除了类的继承以外)。后半句倒是看出了reinterpret_cast的字面意思:重新解释(类型的比特位)。我们真的可以随意将一个类型值的比特位交给另一个类型作为它的值吗?其实不然。IBM的C++指南里倒是明确告诉了我们reinterpret_cast可以,或者说应该在什么地方 阅读全文
posted @ 2013-06-13 00:53 陈孝勇 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 见http://baike.baidu.cn/view/1745213.htm 阅读全文
posted @ 2013-06-13 00:43 陈孝勇 阅读(175) 评论(0) 推荐(0) 编辑
  2013年6月12日
摘要: 转自:http://blog.csdn.net/batoom/article/details/6037520《极限编程》(Extreme programming)的指导原则之一是“只要能用,就做最简单的”。一个似乎需要继承的设计常常能够戏剧性地使用组合来代替而大简化,从而使其更加灵活。因此,在考虑一个设计时,问问自己:“使用组合是不是更简单?这里真的需要继承吗?它能带来什么好处?”继承和组合的比较: 面向对象系统中功能复用的两种最常用技术是类继承和对象组合(object composition)。正如我们已解释过的,类继承允许你根据其他类的实现来定义一个类的实现。这种通过生成子类的复用通常被称 阅读全文
posted @ 2013-06-12 23:59 陈孝勇 阅读(521) 评论(0) 推荐(0) 编辑
摘要: 转自:http://blog.sina.com.cn/s/blog_628e5ca30100fng1.html当我们掌握了Java的语法,当我们了解了面向对象的封装、继承、多态等特性,当我们可以用Swing、Servlet、JSP技术构建桌面以及Web应用,不意味着我们可以写出面向对象的程序,不意味着我们可以很好的实现代码复用,弹性维护,不意味着我们可以实现在维护、扩展基础上的代码复用。一把刀,可以使你制敌于无形而于江湖扬名,也可以只是一把利刃而使你切菜平静。Java,就是这把刀,它的威力取决于你使用的方式。当我们陷入无尽无止重复代码的泥沼,当我们面临牵一发而动全身的维护恶梦, 你应该想起“设 阅读全文
posted @ 2013-06-12 23:57 陈孝勇 阅读(393) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 26 下一页