JAVA NIO TCP SOCKET ÁÄÌìȺ·¢
ÒÔǰ¶¼ÊÇÓÃÒ»°ãµÄsocket±à³Ì£¬ÓÃÏß³ÌÀ´¿ØÖÆ¡£×î½üͻȻÓÃnioÀ´×öЩ¶«Î÷¡£
nioµÄºÃ´¦ÎÒÀ´ËµÒ»Ï£ºµÚÒ»£¬¶Áд¶¼ÊÇ»ùÓÚ¿éµÄ£¬Ð§Âʸߡ£µÚ¶þ£¬Í¨¹ýÒýÈëselector,¼ò»¯ÁËÍøÂç±à³ÌÄ£ÐÍ£¬Òì²½·Ç×èÈû¡£
¼ÈÈ»ÓÐÕâô¶àºÃ´¦£¬ÄǾÍд¸öNIO TCPÍøÂçÁÄÌìÊÒÀ´Á·Á·ÊÖ°É¡£
ÒòΪûÓÐдgui£¬ÊÇ»ùÓÚ¿ØÖÆÌ¨µÄËùÒÔûд˽Á˵IJ¿·Ö£¬Ö»Ð´Á˹«¹²ÁÄÌìÊÒ¡££¨Æäʵ£¬¼ÈÈ»ÊÇ·þÎñÆ÷¶Ë¿ÉÒÔ·Ö·¢¸øËùÓÐÈË£¬·Ö·¢¸øÌض¨ÈËÒ²ÊǺÜÈÝÒ×ʵÏֵġ£
×¢Ò⣺ÕâÀïÖ»ÊÇΪÁËÁ·ÊÖ£¬ÁªÏµ·þÎñÆ÷¶Ë·Ö·¢ÏûÏ¢µ½¸÷¸ö¿Í»§¶Ë¡£TCP À´Ð´ÁÄÌìÊÒ£¬ÔÚÏÖʵÖÐÊDz»¿ÉÈ¡µÄ¡£IM¶¼ÊÇ»ùÓÚUDPÀ´Ð´µÄ¡£
ÏÈÉÏ´úÂë°É¡£
·þÎñÆ÷¶Ë´úÂë MySocketServer.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.kevin.nio;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
import java.nio.channels.ServerSocketChannel;
import java.nio.channels.SocketChannel;
import java.util.Date;
import java.util.Iterator;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author kevin
*/
public class MySocketServer implements Runnable{
private boolean running;
private Selector selector;
String writeMsg;
StringBuffer sb=new StringBuffer();
SelectionKey ssckey;
public MySocketServer(){
running=true;
}
public void init(){
try {
selector = Selector.open();
ServerSocketChannel ssc = ServerSocketChannel.open();
&nbs
Ïà¹ØÎĵµ£º
½ñÌìÊǸöºÃÈÕ×Ó£¬ÎªÊ²Ã´ÕâÃ´ËµÄØ£¿ÒòΪ½ñÌì½á»éµÄÌØ±ð¶à£¬ÕæµÄÏ൱¶à¡£Ö»ÒªÊǸöÓÐÍ·ÓÐÁ³µÄ·¹µê¶¼»áÓÐÐÂÈËÔÚÄÇÀïÍê³É×Ô¼º×îÃÀÀöµÄ»ØÒä¡£µ«ÎÒµÄÐÄÇéÈ´ÈçǰÁ½ÈÕµÄÁ¬ÌìÓêÒ»Ñù×ÜÊÇÒõÒõµÄÔÚÏÂÓꡣΪÁËÄÜÈÃ×Ô¼ºÔçÈÕ×ß³öÒõö²£¬ÈÃ×Ô¼ºÄܹ»ÔÙ´Î×öÖ÷×Ô¼ºµÄÈËÉú£¬½ñÌìÎÒ¾ö¶¨Òª»Øµ½ÎÒרҵ¿ª·¢µÄµÀ·ÉÏÀ´£ ......
×î½üÒ»¶Îʱ¼ä¶Ôjava¸ÐÉÏÁËÐËȤ£¬ÒòΪ½èÁËÒ»±¾¡¶Thinking in java¡·£¬Ò»Ö±Ã»Ê±¼ä¿´£¬¿ìµ½»¹ÊéµÄʱºòÁË£¬Êé×ܲ»Äܰ׽è°É¡£¿´ÁËÁ½Ì죬´ó¸ÅÊÇɨÁË100¶àÒ³°É¡£×¼±¸±àдµÚÒ»¸öjava³ÌÐò¡£
´ÓÍøÉϲé×ÊÁÏ£¬ÐèÒªJDK£¬ÓÚÊÇÏÂÔØ£¬°²×°¡£¾ßÌåÉèÖÃÈçÏ£º
µÚ ......
package¡¢import
µÄÏà¹ØÎÊÌâÊÇjavaÖеÄÒ»¸ö²»´ó²»Ð¡µÄÎÊÌ⣬µ«classpathÎÊÌâÈ´ÊÇjavaµÄÒ»¸öÖøÃûµÄÄÑÌâ¡£½ñÍíµÃÏÐÑо¿ÁËһϣ¬ÔÚÕâÀォÎÒµÄÑо¿³É¹û¸ú¸÷λ
ÅóÓÑ·ÖÏíһϡ£ÓÉÓÚͬ°üµÄÇé¿öºÜ¼òµ¥£¬ËùÒÔÕâÀï¾Í²»ÌÖÂÛͬ°üÇé¿ö£¬Ö»ÌÖÂÛ²»Í¬°üºÍ²»Í¬Â·¾¶µÄÇé¿ö¡£ÎªÁËÄÜÈöÁÕ߸üÈÝÒ×Àí½â£¬ÎÒÕâÀïÒÔ¾ÙÀýµÄ·½Ê½À´ËµÃ÷ÎÊ
Ìâ¡£
¡ ......
<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
-->
JavaÖеÄ
io
ÎÒ¶ÔÁ÷µÄÀí½âÊÇ£ºÔ´µ½Ä¿µÄµØµÄ¹ì¼££¬ËùÒÔÁ÷µÄÒ»¶ËÊÇÊý¾ÝÔ´£¨ÊäÈëÁ÷£©»òÕß½ÓÊÕÆ÷£¨Êä³öÁ÷£©£¬ÁíÒ»¶ËÊÇ
ioÖеÄij¸öÀࣻÕâÀï˵Ã÷Ï£¬
Scanne ......
1. Multiply-Thread
Locks offer two primary features: mutual exclusion and visibility. Mutual exclusion means only one thread at a time may hold a given lock, so only one thread at a time will be using the shared data. Visibility is to ensure that changes made to shared data prior to releasing a lo ......