上一页 1 ··· 17 18 19 20 21 22 23 24 25 ··· 31 下一页
摘要: 1.position例:Java代码position()第一次使用返回值为当前位置:0position(8) 返回第8个字节以后的数据(包括第8个)可以和 limit 联合使用如:Java代码buffer.position(3);buffer.limit(7);ByteBufferslice=buffer.slice();再次调用 position() 返回:82.remaining例:Java代码ByteBufferbyt=ByteBuffer.allocate(128,false);第一次调用byt.remaining(); 返回 128A、使用:byt.putInt(5);或者byt.g 阅读全文
posted @ 2012-01-11 13:54 balaamwe 阅读(2184) 评论(0) 推荐(1) 编辑
摘要: http://scholers.iteye.com/blog/784336 MINA2中(MINA2 RC版本,MINA2.0正式版已经发布)服务端接受数据默认有一定长度的缓冲区(可以在启动的时候设置)。那么对于大报文,怎么处理呢?比如说超过1024,甚至更多?MINA2为了节省网络流量,提高处理效率,会将大报文自动拆分(可能是存放MINA2中的缓冲区里面):比如2048字节的报文,就会拆分成两次;那么在接受的时候,就有一个如何判断是完整报文的问题,或者说是一个拆包组包的问题。 MINA2中初始化服务的时候是可以设置输入和输出的缓冲区的:Java代码acceptor.getSessionCon 阅读全文
posted @ 2012-01-11 13:53 balaamwe 阅读(1035) 评论(0) 推荐(0) 编辑
摘要: 一、背景MINA框架允许开发人员在编写基于MINA的应用程序时使用自己熟悉的日志系统。二、SLF4JMINA框架使用Simple Logging Facade for Java (SLF4J)。你可以在这里获取到更多关于SLF4J的信息,这种日志系统兼容各种日志系统的实现。你可能会使用log4j、java.util.logging或其他的日志系统,使用这种日志框架的好处在于如果你在开发过程中,将日志系统从java.util.logging改为log4j,你根本不需要修改你的代码。选择正确的jar包Logging frameworkRequired JARsLog4J 1.2.xslf4j-ap 阅读全文
posted @ 2012-01-11 13:41 balaamwe 阅读(2243) 评论(0) 推荐(0) 编辑
摘要: privatevoidcheckDeadLock(){//Onlyread/write/connect/writefuturecancausedeadlock.if(!(thisinstanceofCloseFuture||thisinstanceofWriteFuture||thisinstanceofReadFuture||thisinstanceofConnectFuture)){return;}//GetthecurrentthreadstackTrace.//UsingThread.currentThread().getStackTrace()isthebestsolution,// 阅读全文
posted @ 2012-01-11 10:47 balaamwe 阅读(1145) 评论(0) 推荐(0) 编辑
摘要: CLOSE_WAIT,TCP的癌症,TCP的朋友。http://www.blogjava.net/fine/archive/2008/07/26/217709.htmlCLOSE_WAIT状态的生成原因首先我们知道,如果我们的服务器程序APACHE处于CLOSE_WAIT状态的话,说明套接字是被动关闭的!因为如果是CLIENT端主动断掉当前连接的话,那么双方关闭这个TCP连接共需要四个packet:Client--->FIN--->ServerClient<---ACK<---Server这时候Client端处于FIN_WAIT_2状态;而Server程序处于CLOSE 阅读全文
posted @ 2012-01-10 16:19 balaamwe 阅读(1175) 评论(0) 推荐(0) 编辑
摘要: http://www.cnblogs.com/ggzwtj/archive/2011/10/14/2212095.htmlMina之session1、IoSession与底层的传输层类型无关,表示通信双端的连接。提供用户自定义属性,可以用于在过滤器和处理器之间交换用户自定义协议相关信息。每个会话都由一个Service来提供服务,同时有一个Handler负责此会话的I/O事件处理。最重要的两个方法就是read和write,这两个方法都是异步执行,如要真正完成必须在其结果上进行等待。关闭会话的方法close也是异步执行的,也就是应等待返回的CloseFuture,此外,还有另一种关闭方式close 阅读全文
posted @ 2012-01-09 17:24 balaamwe 阅读(1971) 评论(0) 推荐(0) 编辑
摘要: 再次看这篇文章,感觉说的好多都是废话,在文章最前面补充一句话:“[]的优先级高于*”,大家可以带着这句话看下面的~~~========================再一次的见证了自己的基础不牢靠。。。幸好发现得早,看见网上说,华为的一个面试题就考了这个方面的。借那道华为的面试题引出问题,题目:char **p, a[16][8]; 问:p=a是否会导致程序在以后出现问题?为什么?可能有一部分朋友会回答正确,这里他们认为,a[]是一级指针,a[][]就是二级指针。那这个到底对不对呢?OK,用事实说话:1234567891011121314151617// Author: Tanky Woo// 阅读全文
posted @ 2012-01-07 22:23 balaamwe 阅读(481) 评论(0) 推荐(0) 编辑
摘要: GNU计划,又称革奴计划,是由Richard Stallman在1983年9月27日公开发起的。它的目标是创建一套完全自由的操作系统。它在编写linux的时候自己制作了一个标准成为GNU C标准。ANSI美国国家标准协会,它对C做的标准ANSI C标准后来被国际标准协会接收成为标准C所以ANSI C和标准C是一个概念总体来说现在linux也支持标准C,以后标准C可以跨平台,而GUN c一般只在linux c下应用18.1 ANSI C和标准C++的差别这里的ANSI C指的是最新的标准-C991、ANSI C不支持引用2、ANSI C不支持函数重载3、ANSI C多了两个整型(long lon 阅读全文
posted @ 2012-01-07 21:54 balaamwe 阅读(5700) 评论(0) 推荐(0) 编辑
摘要: void的含义 void即“无类型”,void *则为“无类型指针”,可以指向任何数据类型。void指针使用规范①void指针可以指向任意类型的数据,亦即可用任意数据类型的指针对void指针赋值。例如: int *pint; void *pvoid; pvoid = pint; /* 不过不能 pint = pvoid; */ 如果要将pvoid赋给其他类型指针,则需要强制类型转换如:pint = (int *)pvoid; ②在ANSI C标准中,不允许对void指针进行算术运算如pvoid++或pvoid+=1等,而在GNU中则允许,因为在缺省情况下,GNU认为void *与char *一 阅读全文
posted @ 2012-01-07 21:42 balaamwe 阅读(402) 评论(0) 推荐(0) 编辑
摘要: http://hi.baidu.com/lingiloveyou/blog/item/21e57cf3322a6b40342accc7.html什么时候需要创建线程池呢?简单的说,如果一个应用需要频繁的创建和销毁线程,而任务执行的时间又非常短,这样线程创建和销毁的带来的开销就不容忽视,这时也是线程池该出场的机会了。如果线程创建和销毁时间相比任务执行时间可以忽略不计,则没有必要使用线程池了。 下面是Linux系统下用C语言创建的一个线程池。线程池会维护一个任务链表(每个CThread_worker结构就是一个任务)。 pool_init()函数预先创建好max_thread_num个线程,每个线 阅读全文
posted @ 2012-01-06 18:40 balaamwe 阅读(800) 评论(0) 推荐(0) 编辑
上一页 1 ··· 17 18 19 20 21 22 23 24 25 ··· 31 下一页