Page 203 - 3-1
P. 203

int byteAvailable = mInputStream.available();  //  수신 데이터 확인
                                      if (byteAvailable > 0) {      //  데이터가 수신된 경우.
                                          byte[] packetBytes = new byte[byteAvailable];
                                          // read(buf[]) :  입력스트림에서 buf[]      크기만큼 읽어서 저장 없을 경
              우에 -1   리턴.
                                          mInputStream.read(packetBytes);
                                          for (int i = 0; i < byteAvailable; i++) {
                                              byte b = packetBytes[i];
                                              if (b == mCharDelimiter) {
                                                  byte[] encodedBytes = new byte[readBufferPosition];
                                                  //  System.arraycopy( 복사할 배열 복사시작점 복사된 배열,  ,           ,
              붙이기 시작점 복사할 개수,           )
                                                  //  readBuffer  배열을 처음 부터 끝까지 encodedBytes           배열
              로 복사.
                                                  System.arraycopy(readBuffer, 0, encodedBytes, 0,
              encodedBytes.length);


                                                  final String data = new String(encodedBytes, "US-ASCII");
                                                  readBufferPosition = 0;


                                                  handler.post(new Runnable() {
                                                      //  수신된 문자열 데이터에 대한 처리.
                                                      @Override
                                                      public void run() {
                                                          // mStrDelimiter = '\n';
                                                    mEditReceive.setText(mEditReceive.getText().toString()  +
              data + mStrDelimiter);
                                                      }


                                                  });
                                              } else {
                                                  readBuffer[readBufferPosition++] = b;
                                              }
                                          }
                                      }


                                  } catch (Exception e) {    //  데이터 수신 중 오류 발생.
                                      Toast.makeText(getApplicationContext(), " 데이터 수신 중 오류가 발생 했
              습니다.",







                                                         - 203 -
   198   199   200   201   202   203   204   205   206   207   208