Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

Java NIO ѧϰ±Ê¼Ç SocketChannel

ΪÁ˽øÐзÇ×èÈûµÄsocketͨÐÅ£¬java nioÌṩChannel¸ÅÄîµÄʵÏÖ¡£Channel¸ÅÄîÒÔÇø±ðÓÚ´«Í³µÄ»ùÓÚÁ÷¸ÅÄîµÄIO¡£ÊÂʵÉÏChannel¸ÅÄîµÄIO¼È°üÀ¨·Ç×èÈûʽµÄIOÒ²°üÀ¨×èÈûʽIO¡£ÒªChannelÍê³É·Ç×èÈûʽIOÐèҪʵÏÖSelectableChannel½Ó¿Ú£¬ÓëSelector¹ØÁªÊ¹Óá£SocketChannel¾ÍÊÇÕâÑùÒ»¸öSelectableChannel¡£
ÓÉÓÚ£¬selector»úÖÆ±¾ÉíÉæ¼°¶àÏ̵߳ÄÄÚÈÝ£¬ÓëChannel¹ØÁªÊ¹ÓýÏΪ¸´ÔÓ£»ËùÒÔÕâÀïÖ»ÒÔÆ¬¶Ï·½Ê½£¬Õë¶ÔSocketChannelµÄ¹¦ÄܽøÐÐ˵Ã÷¼òҪ˵Ã÷¡£
1¡£´´½¨·þÎñ¶ËµÄServerSocketChannel
¹ØÁªµÄServerSocket¿ÉÒÔÕìÌýÒ»¸öport¡£
ServerSocketChannel sschannel;
...
sschannel = ServerSocketChannel.open();
//ÉèÖÃΪno block·½Ê½¹¤×÷
sschannel.configureBlocking(false);
//¹ØÁªµÄserver-socket¿ªÊ¼ÕìÌý
address = new InetSocketAddress(port);
ServerSocket ss = sschannel.socket();
ss.bind(address);
 
2¡£½«ServerSocketChannel×¢²á(°ï¶¨)µ½Ò»¸öselectorÓÃÓڵȴýÍâÀ´socketÁ¬½Ó¡£
µ±Ò»¸öserver socket channelµÃµ½Ò»¸öÍⲿsocketÁ¬½Óʱ£¬¿ÉÒÔ½«Ò»¸öµ×²ãÁ¬½Ó´´½¨ÎªÒ»¸öSocketChannelʵÀý¡£ÔÙ½«Õâ¸öSocketChannell×¢²á(°ï¶¨)µ½Ò»¸öselectorÓÃÓÚ¾ßÌåIO¡£
//server socket channel×¢²áµ½selector
sschannel.register(selector, SelectionKey.OP_ACCEPT);
...
// µ±Ò»¸öserver socket channelµÃµ½Ò»¸öÍⲿsocketÁ¬½Óʱ
// ¿ÉÒ԰ѸõײãÁ¬½Ó´´½¨³öÒ»¸ö SocketChannel
SocketChannel sc = ssc.accept();
sc.configureBlocking(false); //ÉèÖÃΪ·Ç×èÈû·½Ê½
// ½«SocketChannel ×¢²áµ½Ò»¸öselectorÓÃÓÚIO
sc.register(selector, SelectionKey.OP_READ, request);

3¡£µ±SocketChannel¿ÉÒÔ¶ÁÈ¡»òд³öʱÔò¿ÉÒÔÓÃSocketChannel µÄ·½·¨½øÐÐIO¡£
¶ÁÈ¡£º
ByteBuffer buffer = ByteBuffer.allocate(BUFFER_SIZE);
buffer.clear();
// ¾ßÌåµÄ¶ÁÈ¡¶¯×÷£¬sc½«µ×²ãsocket»º´æÊý¾ÝдÊäÈëbytebuffer¶ÔÏó¡£
int n = sc.read(buffer);
//¶ÁÈ¡Êý¾ÝºóµÄ¼¸ÖÖÇé¿ö
if(n < 0){
//¶ÁÈ¡Êý¾Ýʧ°Ü£¬socketÁ¬½Ó¿ÉÄÜÒѾ­¶Ï¿ª¡£
...
}else if(n > 0){
//¾ßÌå´¦Àíbuffer¶ÔÏó
...
}else{
//n == 0µÄÇé¿ö
}
 
д³ö£º
ByteBuffer buffer = ByteBuffer.allocate(BUFFER_SIZE);
...
// Ìî³äbuffer
buffer.clear();
buffer.put(data);
buffer.filp();
// ¾ßÌåµÄд³ö
sc.write(buffer);
 


Ïà¹ØÎĵµ£º

JavaÖÐʹÓÃRuntimeºÍProcessÀàÔËÐÐÍⲿ³ÌÐò

ʹÓÃRuntime.getRuntime().exec()·½·¨¿ÉÒÔÔÚjava³ÌÐòÀïÔËÐÐÍⲿ³ÌÐò¡£
  1. exec(String command)
  2. exec(String command, String envp[], File dir)
  3. exec(String cmd, String envp[])
  4. exec(String cmdarray[])
  5. exec(String cmdarray[], String envp[])
  6. exec(S ......

javaµÃµ½µ±Ç°Ê±¼ä

javaµÃµ½µ±Ç°Ê±¼ä
Java»ù´¡ 2009-06-02 21:34:18 ÔĶÁ1289 ÆÀÂÛ0 ×ֺţº´óÖÐС
        //String nowTime=new SimpleDateFormat("yyyyMMddHHmm").format(new java.util.Date());
        //System.out.println(nowTime);
import java.text.Sim ......

java ±¦µä

³¡¾°£ºÏÖÔÚÓиö´ÅÅÌÊä³öµÄÒµÎñ£¬¿Í»§¶ËÐèҪͨ¹ý2¸öÒµÎñ¶ÔÏó½øÐÐÊä³ö¡£
Ò»¸öÊÇͨ¹ýFloppy(ÈíÅÌ)£¬ÁíÒ»¸öÊÇͨ¹ýUSB½Ó¿Ú¡£
ÕâÑù¾ÍÐèÒª2¸öÒµÎñÀ࣬µ«ÊÇÈç¹û²»Èÿͻ§¶ËÖªµÀ¶øÊµÏÖ¼òµ¥µÄ×¢ÈëÄØ£¿
Ê×ÏÈ£¬ÓÉÓÚÓÐ2ÖÖÉ豸£¬ÈíÅ̺ÍUSB£¬Òò´ËÎÒÃÇÐèÒª½¨Á¢Ò»¸öÉ豸½Ó¿ÚIDeviceWriter¡£
´úÂëÈçÏ£º ......

javaËø»úÖÆSynchronized


Ô­ÎÄÒý×Ôhttp://hi.baidu.com/heyinjie/blog/item/608ee7108f1f4802203f2e35.html
´ò¸ö±È·½£ºÒ»¸öobject¾ÍÏñÒ»¸ö´ó·¿×Ó£¬´óÃÅÓÀÔ¶´ò¿ª¡£·¿×ÓÀïÓкܶ෿¼ä£¨Ò²¾ÍÊÇ·½·¨£©¡£ÕâЩ·¿¼äÓÐÉÏËøµÄ£¨synchronized·½·¨£©£¬ ºÍ²»ÉÏËøÖ®·Ö£¨ÆÕͨ·½·¨£©¡£·¿ÃſڷÅ×ÅÒ»°ÑÔ¿³×£¨key£©£¬Õâ°ÑÔ¿³×¿ÉÒÔ´ò¿ªËùÓÐÉÏËøµÄ·¿¼ä¡£ÁíÍâÎÒ°ÑËùÓÐÏë ......

ÂÛJAVAµÄweb¿ª·¢

   ´ó¼ÒºÃ£¡ ÎÒ½ÐСºÂ Ò²ÊǸտªÊ¼Ñ§ÓÃJAVA¿ª·¢WEBÏîÄ¿£¬Ï£Íû´ó¼Ò¸øÎÒ½¨ÒéÏ£¬ÓÐʲô·½·¨¿ÉÒÔѧºÃ£¬ÓãʣÁ£Ö£Á¿ª·¢WEBÏîÄ¿£¡~  ÏÖÔÚÎÒ»¹Ó¦¸Ãѧµãʲô Ï£Íû´ó¼Ò¶àÖ¸µãÖ¸µã~   ÎÒÏÖÔÚSSH  ѧÍêÁË£¡     ´ó¼ÒÄÜÓÐʲôºÃµãµÄ½¨ÒéÂ𣿡¡¡¡ÓеϰÁªÏµÏÂÎÒллÁË¡«¡¡ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ