亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? deitelmessengernonblockingserver.java

?? NonBlockingDeitelMessengerCaseStudy
?? JAVA
字號:
// Fig. 18.X: DeitelMessengerNonBlockingServer.java
// Set up a nonblocking chatServer that will receive a connection from a 
// client and echo client's message to all connected clients.
package com.deitel.messenger.sockets.server;

import java.io.*;
import java.nio.*;
import java.nio.channels.*;
import java.nio.channels.spi.*;
import java.nio.charset.*;
import java.net.*;
import java.util.*;
import java.awt.event.*;
import javax.swing.*;

public class DeitelMessengerNonBlockingServer extends JFrame {
   private ServerSocketChannel serverSocketChannel;
   private Selector selector;
   private Vector sockets = new Vector();
   private int counter = 0;
   private JTextArea displayArea;
   private Charset charSet; 
   private ByteBuffer writeBuffer;
   private ByteBuffer readBuffer = ByteBuffer.allocate( 512 );

   public DeitelMessengerNonBlockingServer()
   {
      super( "DeitelMessenger Server" );

      displayArea = new JTextArea();
      getContentPane().add( new JScrollPane( displayArea ) );

      setSize( 200, 300 );
      setVisible( true );

      // close server socket channel and selector when closing window
      addWindowListener( 
		
         new WindowAdapter() {

            public void windowClosing( WindowEvent windowEvent )
            {
               // close server socket channel and selector
               try {
                  serverSocketChannel.close();
	              selector.close();
               }
               catch( IOException ioException ) {
                  ioException.printStackTrace();
               }
               finally {
                  System.exit( 0 );
               }
            }

         } // end inner class WindowAdapter

      ); // end addWindowListener

   } // end constructor
   
   // set up and run server 
   public void runServer()
   {
      // set up server to receive connections; process connections
      try {

         // specify the char set used to encode/decode messages
         charSet = Charset.forName( "UTF-8" );

         // create a ServerSocketChannel.
         serverSocketChannel = ServerSocketChannel.open();
	     serverSocketChannel.socket().bind( 
            new InetSocketAddress( 12345 ) );
         serverSocketChannel.configureBlocking( false );

         // wait for a connection.
         getConnection();

      } // end try

      // process problems with I/O
      catch ( Exception ioException ) {
         ioException.printStackTrace();
      }

   } // end method runServer

   // wait for connection to arrive, then display connection info
   private void getConnection() throws Exception
   {
      // Selector for incoming requests
	  selector = SelectorProvider.provider().openSelector();
      serverSocketChannel.register( 
         selector, SelectionKey.OP_ACCEPT, null );

      // process incoming requests
      while ( selector.select() > 0 ) {

         // get channels ready for i/o
         Set readyKeys = selector.selectedKeys();
         Iterator iterator = readyKeys.iterator();

         // for each ready channel, process request
         while ( iterator.hasNext() ) {
		    SelectionKey key = ( SelectionKey )iterator.next();
		    iterator.remove();

            if ( key.isAcceptable() ) {  // ready for connection

               // create connection
               ServerSocketChannel nextReady =
                  ( ServerSocketChannel ) key.channel();
               SocketChannel socketChannel = nextReady.accept();

               if ( socketChannel != null ) {
                  socketChannel.configureBlocking( false );
                  sockets.add( socketChannel.socket() );
                  counter++;

                  SwingUtilities.invokeLater( 

                     new Runnable() {

                        public void run() 
                        {
                           displayArea.append(
                              "\nConnection with Client " + counter );
                        }
                     }
			      );

                  // register read operation to socketChannel
                  SelectionKey readKey = socketChannel.register( 
                     selector, SelectionKey.OP_READ, null );

               } // end if socketChannel != null

            } // end if key.isAcceptable

            else if ( key.isReadable() ) {  // ready for read

               // get socketChannel ready for read
               SocketChannel socketChannel = 
                  ( SocketChannel ) key.channel();

               readMessage( socketChannel );
            }

         } // end processing each channel

      } // end processing incoming requests 

   } // end method getConnection

   // send message to client
   private void writeMessage( String message ) throws IOException
   {
      Socket socket;
      SocketChannel socketChannel;
      
      // echo message back to all connected clients
      for ( int i = 0; i < sockets.size(); i++ ) {
         socket = ( Socket ) sockets.elementAt( i );
         socketChannel = socket.getChannel();

         // send message to client
         try {

            // convert message to bytes in charSet
            writeBuffer = charSet.encode( message );

            // write message to socketChannel
            socketChannel.write( writeBuffer );
         }

         // process problems sending object
         catch ( IOException ioException ) {
            ioException.printStackTrace();
            socketChannel.close();
            sockets.remove( socket );
         }

      } // end for

   } // end method writeMessage

   // read message from client
   private void readMessage( SocketChannel socketChannel ) 
      throws IOException
   {
      // read message
      try {

         if ( socketChannel.isOpen() ) {
            readBuffer.clear();
            socketChannel.read( readBuffer );
            readBuffer.flip();
            CharBuffer charMessage = charSet.decode( readBuffer );
            String message = charMessage.toString().trim();

            // remove and close the connection when client disconnects
            if ( message.indexOf( "Disconnect" ) >= 0 ) {
               sockets.remove( socketChannel.socket() );
               socketChannel.close();
            }
            else 
               writeMessage( message );

         } // end if

      } // end try

      catch ( IOException ioException ) {
         ioException.printStackTrace();
         sockets.remove( socketChannel.socket() );
         socketChannel.close();
      }

   } // end method readMessage

   public static void main( String args[] )
   {
      DeitelMessengerNonBlockingServer application = 
         new DeitelMessengerNonBlockingServer();
      application.runServer();
   }

}  // end class DeitelMessengerNonBlockingServer

/**************************************************************************
 * (C) Copyright 1992-2003 by Deitel & Associates, Inc. and               *
 * Prentice Hall. All Rights Reserved.                                    *
 *                                                                        *
 * DISCLAIMER: The authors and publisher of this book have used their     *
 * best efforts in preparing the book. These efforts include the          *
 * development, research, and testing of the theories and programs        *
 * to determine their effectiveness. The authors and publisher make       *
 * no warranty of any kind, expressed or implied, with regard to these    *
 * programs or to the documentation contained in these books. The authors *
 * and publisher shall not be liable in any event for incidental or       *
 * consequential damages in connection with, or arising out of, the       *
 * furnishing, performance, or use of these programs.                     *
 *************************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美1区2区3区| 最新欧美精品一区二区三区| 成人avav影音| 日韩激情av在线| 日韩伦理电影网| 26uuu精品一区二区三区四区在线| 91视视频在线观看入口直接观看www| 日本成人在线电影网| √…a在线天堂一区| 欧美本精品男人aⅴ天堂| 欧美性感一类影片在线播放| 成人午夜大片免费观看| 日韩国产欧美三级| 亚洲激情综合网| 国产精品免费网站在线观看| 日韩欧美成人激情| 欧美人xxxx| 99视频在线精品| 国产成人啪免费观看软件| 丝袜美腿亚洲一区二区图片| 日韩美女精品在线| 国产精品久久久久久久浪潮网站| 日韩视频免费观看高清完整版| 91行情网站电视在线观看高清版| 国产在线麻豆精品观看| 日产精品久久久久久久性色| 亚洲一区中文日韩| 亚洲女与黑人做爰| 成人免费在线观看入口| 欧美激情一区二区在线| 久久尤物电影视频在线观看| 日韩欧美久久久| 日韩一区二区三区视频| 欧美久久久久久久久久| 欧美揉bbbbb揉bbbbb| 在线观看日韩国产| 欧美亚洲一区三区| 欧美视频在线一区二区三区| 色噜噜夜夜夜综合网| 91丨porny丨在线| 91在线免费看| 91高清在线观看| 色美美综合视频| 欧美色爱综合网| 欧美剧情片在线观看| 777欧美精品| 欧美一级高清片| 欧美精品一区男女天堂| 亚洲精品在线网站| 中文字幕免费观看一区| 亚洲天堂av一区| 一区二区成人在线| 婷婷夜色潮精品综合在线| 丝袜诱惑制服诱惑色一区在线观看 | 激情偷乱视频一区二区三区| 久久99精品久久只有精品| 麻豆一区二区在线| 国产一区在线精品| 不卡的av电影| 欧美亚洲国产一区二区三区| 欧美日韩不卡一区| 精品成人私密视频| 国产精品国产三级国产三级人妇| 亚洲老妇xxxxxx| 日韩国产在线观看| 国产激情91久久精品导航 | 欧美巨大另类极品videosbest | 国产欧美一区二区精品性色超碰 | 六月丁香婷婷久久| 国产毛片一区二区| 欧洲一区二区三区在线| 91精品国产色综合久久| 欧美xxxxxxxxx| 亚洲视频 欧洲视频| 天堂久久久久va久久久久| 国产一区二区在线免费观看| av成人老司机| 日韩一区国产二区欧美三区| 久久精品视频免费观看| 亚洲一区视频在线观看视频| 久久99精品久久久久久国产越南| 懂色av一区二区夜夜嗨| 欧美日韩卡一卡二| 国产精品伦理一区二区| 日韩制服丝袜av| 懂色av一区二区夜夜嗨| 在线播放亚洲一区| 国产日产欧美一区二区三区| 亚洲成人动漫在线免费观看| 粉嫩av一区二区三区| 5566中文字幕一区二区电影| 国产亚洲一二三区| 亚洲成av人片在www色猫咪| 成人午夜视频在线观看| 在线成人av影院| 亚洲精品中文字幕在线观看| 加勒比av一区二区| 欧美亚洲综合一区| 中文字幕一区二区视频| 九一久久久久久| 欧美日韩国产综合一区二区| 国产精品污污网站在线观看| 日本成人中文字幕在线视频 | 日本韩国精品在线| 久久久亚洲高清| 日韩vs国产vs欧美| 色婷婷综合中文久久一本| 久久青草欧美一区二区三区| 亚洲国产精品精华液网站| 成人黄色在线视频| 久久欧美中文字幕| 奇米一区二区三区av| 91激情五月电影| 亚洲欧洲日韩av| 国产精品系列在线观看| 精品国产制服丝袜高跟| 日韩在线a电影| 欧美日韩综合在线| 一区二区三区欧美亚洲| 99在线热播精品免费| 国产精品无圣光一区二区| 国产一本一道久久香蕉| www国产精品av| 久久精品久久99精品久久| 6080国产精品一区二区| 亚洲chinese男男1069| 色噜噜久久综合| 亚洲人成在线播放网站岛国| 成人黄色软件下载| 国产精品久久夜| 成人午夜精品一区二区三区| 欧美国产国产综合| 国产白丝精品91爽爽久久| 久久久国际精品| 懂色av一区二区在线播放| 国产日韩欧美精品在线| 国产91精品精华液一区二区三区| 26uuu国产电影一区二区| 黑人巨大精品欧美黑白配亚洲| 精品区一区二区| 精品亚洲免费视频| 久久影院电视剧免费观看| 国产乱码精品一品二品| 国产色产综合产在线视频| 国产老女人精品毛片久久| 国产午夜精品一区二区| 国产99久久久国产精品潘金| 国产日韩欧美精品电影三级在线| 丰满少妇久久久久久久| 成人欧美一区二区三区小说| 色婷婷久久久综合中文字幕| 亚洲高清不卡在线观看| 欧美丰满少妇xxxbbb| 韩国av一区二区三区在线观看| 国产视频一区不卡| 91在线观看一区二区| 亚洲视频一区在线| 欧美日韩一本到| 久久99精品国产.久久久久久| 精品成人一区二区| 成人a区在线观看| 一区二区三区波多野结衣在线观看| 欧美日韩综合在线免费观看| 免费成人在线视频观看| 久久久久亚洲综合| 91在线观看一区二区| 香蕉成人啪国产精品视频综合网| 日韩一区二区高清| 成人精品国产福利| 亚洲二区在线视频| 久久亚洲捆绑美女| 色天天综合久久久久综合片| 蜜桃视频免费观看一区| 日本一区二区不卡视频| 欧美日韩一级片在线观看| 国产一区二区三区四| 亚洲精品第一国产综合野| 日韩欧美国产精品一区| 99精品久久只有精品| 免费在线欧美视频| 国产精品天干天干在线综合| 欧美日韩国产高清一区二区| 精品一区二区三区久久久| 亚洲欧洲综合另类在线| 欧美一二三区在线观看| 91美女在线观看| 狂野欧美性猛交blacked| 亚洲色图欧美在线| 欧美大胆一级视频| 色婷婷综合久久久| 国产精品资源站在线| 亚洲www啪成人一区二区麻豆| 国产日韩欧美精品一区| 欧美精品xxxxbbbb| 成人蜜臀av电影| 日韩精品欧美精品| 日韩毛片视频在线看| 精品va天堂亚洲国产| 欧美日韩一区二区三区免费看 | 一本色道a无线码一区v|