¡¾×ª¡¿ÔÚJavaÖÐʹÓÃNIO½øÐÐÍøÂç±à³Ì
ÔÚJDKÖУ¬ÓÐÒ»¸ö·Ç³£ÓÐÒâ˼µÄ¿â£ºNIO£¨New I/O£©¡£Õâ¸ö¿âÖÐÓÐ3¸öÖØÒªµÄÀ࣬·Ö±ðÊÇjava.nio.channelsÖÐSelectorºÍChannel£¬ÒÔ¼°java.nioÖеÄBuffer¡£
±¾ÆªÎÄÕÂÎÒÃÇÊ×ÏÈÁ˽âÒ»ÏÂΪʲôÐèÒªNIOÀ´½øÐÐÍøÂç±à³Ì£¬È»ºó¿´¿´Ò»²½Ò»²½À´½²½âÈçºÎÔÚÍøÂç±à³ÌÖÐʹÓÃNIO¡£
ΪʲôÐèÒªNIO
ʹÓÃJava±àд¹ýSocket³ÌÐòµÄͬѧһ¶¨¶¼ÖªµÀSocketºÍSocketServer¡£µ±µ÷ÓÃij¸öµ÷ÓõÄʱºò£¬µ÷Óõĵط½¾Í»á×èÈû£¬µÈ´ýÏìÓ¦¡£ÕâÖÖ·½Ê½¶ÔÓÚС¹æÄ£µÄ³ÌÐò·Ç³£·½±ã£¬µ«ÊǶÔÓÚ´óÐ͵ijÌÐò¾ÍÓеãÁ¦²»´ÓÐÄÁË£¬µ±ÓдóÁ¿µÄÁ¬½ÓµÄʱºò£¬ÎÒÃÇ¿ÉÒÔΪÿһ¸öÁ¬½Ó½¨Á¢Ò»¸öÏß³ÌÀ´²Ù×÷¡£µ«ÊÇÕâÖÖ×ö·¨´øÀ´µÄȱÏÝÒ²ÊÇÏÔ¶øÒ×¼ûµÄ£º
Ó²¼þÄܹ»Ö§³Ö´óÁ¿µÄ²¢·¢¡£
²¢·¢µÄÊýÁ¿Ê¼ÖÕÓÐÒ»¸öÉÏÏÞ¡£
¸÷¸öÏß³ÌÖ®¼äµÄÓÅÏȼ¶²»ºÃ¿ØÖÆ¡£
¸÷¸öClientÖ®¼äµÄ½»»¥Óëͬ²½À§ÄÑ¡£
ÎÒÃÇÒ²¿ÉÒÔʹÓÃÒ»¸öÏß³ÌÀ´´¦ÀíËùÓеÄÇëÇó£¬Ê¹Óò»×èÈûµÄIO£¬ÂÖѯ²éѯËùÓеÄClient¡£ÕâÖÖ×ö·¨Í¬ÑùÒ²ÓÐȱÏÝ£ºÎÞ·¨Ñ¸ËÙÏìÓ¦Client¶Ë£¬Í¬Ê±»áÏûºÄ´óÁ¿ÂÖѯ²éѯµÄʱ¼ä¡£
ËùÒÔ£¬ÎÒÃÇÐèÒªÒ»ÖÖpollµÄģʽÀ´´¦ÀíÕâÖÖÇé¿ö£¬´Ó´óÁ¿µÄÍøÂçÁ¬½ÓÖÐÕÒ³öÀ´ÕæÕýÐèÒª·þÎñµÄClient¡£ÕâÕýÊÇNIOµ®ÉúµÄÔÒò£ºÌṩһÖÖPollµÄģʽ£¬ÔÚËùÓеÄClientÖÐÕÒµ½ÐèÒª·þÎñµÄClient¡£
»Øµ½ÎÒÃǸոÕ˵µ½µÄ3¸ö×î×îÖØÒªµÄClass£ºjava.nio.channelsÖÐSelectorºÍChannel£¬ÒÔ¼°java.nioÖеÄBuffer¡£
Channel´ú±íÒ»¸ö¿ÉÒÔ±»ÓÃÓÚPoll²Ù×÷µÄ¶ÔÏ󣨿ÉÒÔÊÇÎļþÁ÷Ò²¿ÉÒÔÊ¹ÍøÂçÁ÷£©£¬ChannelÄܹ»±»×¢²áµ½Ò»¸öSelectorÖС£Í¨¹ýµ÷ÓÃSelectorµÄselect·½·¨¿ÉÒÔ´ÓËùÓеÄChannelÖÐÕÒµ½ÐèÒª·þÎñµÄʵÀý£¨Accept£¬read ..£©¡£Buffer¶ÔÏóÌṩ¶ÁдÊý¾ÝµÄ»º´æ¡£Ïà¶ÔÓÚÎÒÃÇÊìϤµÄStream¶ÔÏó£¬BufferÌṩ¸üºÃµÄÐÔÄÜÒÔ¼°¸üºÃµÄ±à³Ì͸Ã÷ÐÔ£¨ÈËΪ¿ØÖÆ»º´æµÄ´óСÒÔ¼°¾ßÌåµÄ²Ù×÷£©¡£
ÅäºÏBufferʹÓÃChannel
Ó봫ͳģʽµÄ±à³Ì²»Óã¬Channel²»Ê¹ÓÃStream£¬¶øÊÇBuffer¡£ÎÒÃÇÀ´ÊµÏÖÒ»¸ö¼òµ¥µÄ·Ç×èÈûEcho Client£º
package com.cnblogs.gpcuster;
import java.net.InetSocketAddress;
import java.net.SocketException;
import java.nio.ByteBuffer;
import java.nio.channels.SocketChannel;
public class TCPEchoClientNonblocking {
public static void main(String args[]) throws Exception {
if ((args.length < 2) || (args.length > 3))// Testforcorrect#ofargs
throw new IllegalArgumentException(
"Param
Ïà¹ØÎĵµ£º
Ò»£º×¼±¸ www.savarese.org download
1. rocksaw-1.0.0-src.tar.gz
2. vserv-tcpip-0.9.2-src.tar.gz
¶þ£º±àÒëÔ´ÎļþµÃµ½jar°ü ʹÓÃAnt
1. build vserv-tcpip-0.9.2-src
ÔÚvserv-tcpip-0.9.2Ŀ¼ÏÂÃæ½¨Ò»¸ötestsĿ¼£¬È»ºóÔÚcmd´°¿ÚϽøÈë ......
ÀàµÄ³õʼ»¯ºÍ¶ÔÏó³õʼ»¯ÊÇ JVM ¹ÜÀíµÄÀàÐÍÉúÃüÖÜÆÚÖзdz£ÖØÒªµÄÁ½¸ö»·½Ú£¬Google ÁËÒ»±éÍøÂ磬ÓйØÀà×°ÔØ»úÖÆµÄÎÄÕµ¹ÊDz»ÉÙ£¬È»¶øÀà³õʼ»¯ºÍ¶ÔÏó³õʼ»¯µÄÎÄÕ²¢²»¶à£¬ÌرðÊÇ´Ó×Ö½ÚÂëºÍ JVM ²ã´ÎÀ´·ÖÎöµÄÎÄÕ¸üÊÇÏÊÓÐËù¼û¡£
±¾ÎÄÖ÷Òª¶ÔÀàºÍ¶ÔÏó³õʼ»¯È«¹ý³Ì½øÐзÖÎö£¬Í¨¹ýÒ»¸öʵ¼ÊÎÊÌâÒýÈ룬½«Ô´´úÂëת»»³É JVM ×Ö½ÚÂëºó£¬ ......
String posttime=new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:sss").format( java.util.Calendar.getInstance().getTime() );
1. Java¼ÆËãʱ¼äÒÀ¿¿1970Äê1ÔÂ1ÈÕ¿ªÊ¼µÄºÁÃëÊý.   ......
¹Ø¼ü×Öfinal£º
ÔÚJavaÖÐÉùÃ÷Àà¡¢ÊôÐԺͷ½·¨Ê±£¬¿ÉʹÓùؼü×ÖfinalÀ´ÐÞÊΡ£
final±ê¼ÇµÄÀ಻Äܱ»¼Ì³Ð¡£
final±ê¼ÇµÄ·½·¨²»Äܱ»×ÓÀàÖØÐ´¡£
final±ê¼ÇµÄ±äÁ¿(³ÉÔ±±äÁ¿»ò¾Ö²¿±äÁ¿)¼´³ÉΪ³£Á¿£¬Ö»Äܸ³ÖµÒ»´Î¡£
final±ê¼Çµ ......
ÓÉÓÚÓÐÒ»¶¨µÄJavaºÍJUnitµÄ»ù´¡£¬ËùÒԸоõµÚÒ»¿Î±È½Ï¼òµ¥£¬µ«ÊÕ»ñ»¹ÊÇÓе쬱ÈÈçËµÖØ¹¹²¿·Ö½éÉܵÄÄÚÈÝ¡£
JUnitÒªµã£º
²âÊÔ·½·¨µÄÃüÃû¹æÔò£º
l ·½·¨±ØÐëÉùÃ÷Ϊpublic
l ·½·¨µÄ·µ»ØÖµ±ØÐëΪvoid
l ·½·¨µÄÃû×Ö±ØÐëÒÔСдµÄtestΪǰ׺
l ·½·¨²»ÄܽÓÊÜÈκβÎÊý
ÖØ¹¹Òªµã£º
1. &nbs ......