Page 472 - 2020학년도 MDP과제발표회 자료집 (통신과) (3)
P. 472

//  ByteBuffer 를  생성한다.
                             ByteBuffer  buffer  =  ByteBuffer.allocate(2048);


                             long  read  =  0;


                             //  요청한  소켓채널로부터  데이터를  읽어들인다.
                             read  =  sc.read(buffer);
                             buffer.flip();


                             String  data  =  new  String();
                             CharsetDecoder  decoder  =  Charset.forName("UTF-8").newDecoder();
                             data  =  decoder.decode(buffer).toString();


                             //  메세지  얻어오기
                             Message  msg  =  m_handler.obtainMessage();
                             //  메시지  ID  설정
                             msg.what  =  DATA_RECV_SUCCESS;
                             //  메시지  정보  설정  (Object  형식)
                             msg.obj  =  data;
                             m_handler.sendMessage(msg);


                             //  버퍼  메모리를  해제한다.
                             clearBuffer(buffer);
                     }


                     private  void  clearBuffer(ByteBuffer  buffer){
                             if  (buffer  !=  null)  {
                                     buffer.clear();
                                     buffer  =  null;
                             }
                     }


                     void  closeSocket(){
                             try  {
                                     if  (m_SocketChannel.isConnected())  {
                                             //  소켓  종료
                                             m_SocketChannel.close();
                                             //  셀렉터  종료
                                             m_Selector.close();
                                     }
                             }  catch  (Exception  e){
                                     e.printStackTrace();
                             }
                     }




             492     인천전자마이스터고등학교                        -  492  -
                        정보통신기기과
   467   468   469   470   471   472   473   474   475   476   477