JAVA NIO TCP SOCKET ÁÄÌìȺ·¢(²¢·¢¶àÏß³ÌдÏûϢƪ)
·þÎñÆ÷ÖÐתÏûÏ¢£¬ÊÇ·ÑʱµÄÊ£¬¿ÉÒÔ¼ÓÈë¶àÏ̡߳£ÕâÑùÒÔÀ´£¬»á²úÉúºÜ¶àÏ̡߳£¿ÉÒÔÔËÓÃÏ̳߳ØÀ´¹ÜÀí¡£
ÕâÀïÔËÓÃjava.util.concurrent°üµÄExecutors.newCachedThreadPoolÀ´¹ÜÀí¡£
·Ï»°ÉÙ˵£¬ÉÏ´úÂ룺
·þÎñÆ÷¶Ë£º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.concurrent.ExecutorService;
import java.util.concurrent.Executors;
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;
SelectionKey ssckey;
ExecutorService exec;
public MySocketServer(){
running=true;
exec=Executors.newCachedThreadPool();
}
public void init(){
try {
selector = Selector.open();
ServerSocketChannel ssc = ServerSocketChannel.open();
ssc.configureBlocking(false);
ssc.socket().bind(new InetSocketAddress(2345)
Ïà¹ØÎĵµ£º
ListµÄÓ÷¨
List°üÀ¨List½Ó¿ÚÒÔ¼°List½Ó¿ÚµÄËùÓÐʵÏÖÀà¡£ÒòΪList½Ó¿ÚʵÏÖÁËCollection½Ó¿Ú£¬ËùÒÔList½Ó¿ÚÓµÓÐCollection½Ó¿ÚÌṩµÄËùÓг£Ó÷½·¨£¬ÓÖÒòΪListÊÇÁбíÀàÐÍ£¬ËùÒÔList½Ó¿Ú»¹ÌṩÁËһЩÊʺÏÓÚ×ÔÉíµÄ³£Ó÷½·¨£¬Èç±í1Ëùʾ¡£
±í1 List½Ó¿Ú¶¨ÒåµÄ³£Ó÷½·¨¼°¹¦ÄÜ
´Ó±í1¿ÉÒÔ¿´³ö£¬List½Ó¿ÚÌṩµÄÊʺÏÓÚ×ÔÉíµÄ ......
Ôڳɹ¦ÊµÏÖJavaµ÷ÓÃC++Ö®ºó£¬½ÓÏÂÀ´Ïëµ½ÄÜ·ñͨ¹ýJNAʵÏÖJavaµ÷ÓÃFortran£¬½ñÌìÊÔÑéÁËһϣ¬»¹ÊDZȽÏÈÝÒ׵ġ£
ÍøÉÏÓÐÒ»¸öJavaµ÷ÓÃF95µÄÀý×Ó£¬µ«ÊÇÎÒ¿¼ÂDz»½öҪʵÏÖF95µÄµ÷Ó㬻¹ÒªÊµÏÖF77µÄµ÷Óã¬ËùÒÔ·ÑÁËһЩÖÜÕÛ¡£
ÎÊÌâµÄ¹Ø¼üÔÚÓÚF77Ϊ¹ý³ÌÃû×Ô¶¯Ìí¼ÓÁËÒ»¸öβ²¿µÄÏ»®Ïߣ¬ËùÒÔsub1Õâ¸ö¹ý³Ì£¬µ½JavaÒ»¶Ë£¬¾Í±ä³ÉÁËsub1_£¬ ......
JAVA Socket³¬Ê±Ç³Îö
Ì×½Ó×Ö»ò²å×ù(socket)ÊÇÒ»ÖÖÈí¼þÐÎʽµÄ³éÏó£¬ÓÃÓÚ±í´ïÁ½Ì¨»úÆ÷¼äÒ»¸öÁ¬½ÓµÄ“ÖÕ¶Ë”¡£Õë¶ÔÒ»¸öÌØ¶¨µÄÁ¬½Ó£¬Ã¿Ì¨»úÆ÷É϶¼ÓÐÒ»¸ö“Ì×½Ó×Ö”£¬¿ÉÒÔÏëÏóËüÃÇÖ®¼äÓÐÒ»ÌõÐéÄâµÄ“ÏßÀ”¡£JAVAÓÐÁ½¸ö»ùÓÚÊý¾ÝÁ÷µÄÌ×½Ó×ÖÀࣺServerSocket£¬·þÎñÆ÷ÓÃËü“ÕìÌý&rdquo ......
¿ª·¢µÄʱºòÓÐʱºò»áÅöµ½ÕâÑùµÄÇé¿ö£¬ÎÒÃÇÔÚд³ÌÐòµÄʱºò²¢²»ÖªµÀÐèÒªµ÷ÓÃij¸ö¶ÔÏóµÄÄĸö·½·¨£¬Ö»ÓгÌÐòÔËÐкó£¬ÎÒÃDzÅÄܹ»ÖªµÀ¡£»òÐíÎÒÃÇÐèÒª¸ù¾Ý¿Í»§¶Ë´«¹ýÀ´µÄij¸öString²ÎÊýµÄÖµÀ´ÅжÏÎÒÃÇÓ¦¸ÃÖ´ÐÐÄĸö·½·¨¡£ÔÚÕâÖÖÇé¿öÏÂJAVAµÄ·´ÉäÖ´ÐоͿÉÒÔ°ïÉÏæÁË¡£ÏÂÃæÊÇÎÒ×öµÄÒ»¸ö¼òµ¥µÄ²âÊÔ´úÂ룬Ìṩ¸ø´ó¼Ò×ö¸ö²Î¿¼¡£
i ......
ÒÔǰ¶¼ÊÇÓÃÒ»°ãµÄsocket±à³Ì£¬ÓÃÏß³ÌÀ´¿ØÖÆ¡£×î½üͻȻÓÃnioÀ´×öЩ¶«Î÷¡£
nioµÄºÃ´¦ÎÒÀ´ËµÒ»Ï£ºµÚÒ»£¬¶Áд¶¼ÊÇ»ùÓÚ¿éµÄ£¬Ð§Âʸߡ£µÚ¶þ£¬Í¨¹ýÒýÈëselector,¼ò»¯ÁËÍøÂç±à³ÌÄ£ÐÍ£¬Òì²½·Ç×èÈû¡£
¼ÈÈ»ÓÐÕâô¶àºÃ´¦£¬ÄǾÍд¸öNIO TCPÍøÂçÁÄÌìÊÒÀ´Á·Á·ÊÖ°É¡£
ÒòΪûÓÐдgui£¬ÊÇ»ùÓÚ¿ØÖÆÌ¨µÄËùÒÔûд˽Á˵IJ¿·Ö£¬Ö»Ð´Á˹«¹²ÁÄÌìÊ ......