¼¼ÊõÌù£ºjava nioµÄʾÀý
package com.vista.Server;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
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.Iterator;
import java.util.LinkedList;
import java.util.Set;
public class SelectorServer
{
private static int DEFAULT_SERVERPORT = 6018;//ĬÈ϶˿Ú
private static int DEFAULT_BUFFERSIZE = 1024;//ĬÈÏ»º³åÇø´óСΪ1024×Ö½Ú
private ServerSocketChannel channel;
private LinkedList<SocketChannel> clients;
private Selector readSelector;
private ByteBuffer buffer;//×Ö½Ú»º³åÇø
private int port;
public SelectorServer(int port) throws IOException
{
this.port = port;
this.clients = new LinkedList<SocketChannel>();
this.channel = null;
this.readSelector = Selector.open();//´ò¿ªÑ¡ÔñÆ÷
this.buffer = ByteBuffer.allocate(DEFAULT_BUFFERSIZE);
}
// ·þÎñÆ÷³ÌÐòÔÚ·þÎñÑ»·Öе÷ÓÃsericeClients()·½·¨ÎªÒѽÓÊܵĿͻ§·þÎñ
public void serviceClients()throws IOException
{
Set keys;
Iterator it;
SelectionKey key;
SocketChannel client;
// ÔÚreadSelectorÉϵ÷ÓÃselect()·½·¨£¬²ÎÊý1´ú±íÈç¹ûµ÷ÓÃselectµÄʱºò ÄÇô×èÈû×î¶à1ÃëÖӵȴý¿ÉÓõĿͻ§¶ËÁ¬½Ó
if(readSelector.select(1) > 0)
{
keys = readSelector.selectedKeys(); // È¡µÃ´ú±í¶ËͨµÀµÄ¼ü¼¯ºÏ
it = keys.iterator();
// ±éÀú£¬ÎªÃ¿Ò»¸ö¿Í»§·þÎñ
while(it.hasNext())
{
key = (SelectionKey)it.next();
if(key.isReadable())
{ // Èç¹ûͨµÀ¿É¶Á£¬ÄÇô¶Á´ËͨµÀµ½bufferÖÐ
int bytes;
client = (SocketChannel)key.channel();// È¡µÃ¼ü¶ÔÓ¦µÄͨµÀ
buffer.clear(); // Çå¿Õ»º³åÇøÖеÄÄÚÈÝ£¬ÉèÖúÃpositi
Ïà¹ØÎĵµ£º
Ò»¡¢¼Ì³Ð
1.¸ÅÄһ¸öÀà¼Ì³ÐÁíÒ»¸öÀ࣬Ôò³Æ¼Ì³ÐµÄÀàΪ×ÓÀ࣬±»¼Ì³ÐµÄÀàΪ¸¸Àà¡£
2.Ä¿µÄ£ºÊµÏÖ´úÂëµÄ¸´Óá£
3.Àí½â£º×ÓÀàÓ븸ÀàµÄ¹ØÏµ²¢²»ÊÇÈÕ³£Éú»îÖеĸ¸×Ó¹ØÏµ£¬×ÓÀàÓ븸Àà¶øÊÇÒ»ÖÖÌØÊ⻯ÓëÒ»°ã»¯µÄ¹ØÏµ£¬ÊÇis-aµÄ¹ØÏµ£¬×ÓÀàÊǸ¸Àà¸ü¼ÓÏêϸµÄ·ÖÀà¡£Èçclass dog extends animal,¾Í¿ÉÒÔÀí½âΪdog is a animal.×¢ÒâÉè¼ ......
Ò»¡¢´´½¨ÈÎÎñ
ÈÎÎñ¿ÉÒÔÀí½âΪһ¶Î¶ÀÁ¢Ö´ÐеĴúÂ룬ËüÍê³ÉÒ»¶¨µÄ¹¦ÄÜ¡£
ÔÚJava 5¼°ÒÔÉϰ汾Öв»½ö¿ÉÒÔÀûÓà Runnable½Ó¿Ú£¬»¹¿ÉÒÔÀûÓÃCallable½Ó¿Ú¡£
Á½ÖÖÈÎÎñµÄÇø±ð£ºRunnable µÄrun()·½·¨Íê³ÉµÄÈÎÎñÊÇûÓзµ»ØÖµµÄ - void
¶øCallable µÄcall()·½·¨Íê³ÉµÄÈÎÎñÊÇÓзµ»ØÖ ......
×÷Õß
:
ÀîÖ¾ÌÎ
ÓÊÏ䵨ַ
:lizhitao67116961@163.com
ÉîÛÚÓÅÍø¿Æ¼¼ÓÐÏÞ¹«Ë¾
ǰ¼¸Ìì¿´µ½ÓÐÄ³Î»ÍøÓÑдÁËÓÃhttp½øÐжϵãÏÂÔØÎļþ£¬µ«ÊÇÍøÉÏûÓп´µ½ftp¶ÏµãÏÂÔØµÄÎÄÕ»ò´úÂ룬ÏÖÔÚ±¾ÈËдÁËһϡ£¾¹ý²âÊÔûÓÐÎÊÌâ¡£Çë´ó¼Ò¶à¶àÖ¸½Ì¡£ÈçÓÐÊ詵ĵط½Çë¸÷λ¼¼ÊõÓÑÈËÖ¸³ö¡£±¾È˲»Ê¤¸Ð¼¤¡£
package
test.d ......
Java 6 RowSet ʹÓÃÍêÈ«ÆÊÎö(2)
¹Ø¼ü×Ö: rowset
·ÖÒ³
ÓÉÓÚ CachedRowSet Êǽ«Êý¾ÝÁÙʱ´æ´¢ÔÚÄÚ´æÖУ¬Òò´Ë¶ÔÓÚÐí¶à SQL ²éѯ£¬»á·µ»Ø´óÁ¿µÄÊý¾Ý¡£Èç¹û½«Õû¸ö½á¹û¼¯È«²¿´æ´¢ÔÚÄÚ´æÖлáÕ¼ÓôóÁ¿µÄÄڴ棬ÓÐʱÉõÖÁÊDz»¿ÉÐеġ£¶Ô´Ë CachedRowSet ÌṩÁË·ÖÅú´Ó ResultSet ÖлñÈ¡Êý¾ÝµÄ·½Ê½£¬Õâ¾ÍÊÇ·ÖÒ³¡£Ó¦ÓóÌÐò¿ÉÒÔ¼òµ¥µÄͨ ......