receive.java 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package com.example.repeater;
  2. import android.util.Log;
  3. import java.io.BufferedReader;
  4. import java.io.DataOutputStream;
  5. import java.io.InputStream;
  6. import java.io.InputStreamReader;
  7. import java.io.ObjectInputStream;
  8. import java.io.OutputStream;
  9. import java.io.PrintWriter;
  10. import java.net.Socket;
  11. public class receive implements Runnable{
  12. private InputStreamReader in = null;
  13. private BufferedReader buffRead = null;
  14. private StringBuilder myCompleteMessage = null;
  15. private int numberOfBytesRead = 0;
  16. private char buff[] = new char[1024];
  17. private Socket m_socket = null;
  18. public receive(Socket socket) { //생성자를 통하여 소켓을 받아온다
  19. try {
  20. m_socket = socket; //서버에 접속된 소켓 파일 디스크립터 저장
  21. in = new InputStreamReader(m_socket.getInputStream()); //전송 객체 초기화
  22. buffRead = new BufferedReader(in);
  23. Log.d("receive.class / 데이터 수신 객체 초기화", "성공");
  24. } catch(Exception e) {
  25. Log.e("receive.class / 데이터 수신 객체 초기화", "실패");
  26. }
  27. }
  28. @Override
  29. public void run() {
  30. // TODO Auto-generated method stub
  31. try {
  32. while(true) {
  33. myCompleteMessage = new StringBuilder(); //StringBuilder 객체 초기화
  34. buffRead = new BufferedReader(new InputStreamReader(m_socket.getInputStream()));
  35. numberOfBytesRead = buffRead.read(buff, 0, buff.length);//char 배열 buff에 받아들이고
  36. myCompleteMessage.append(buff, 0, numberOfBytesRead); //buff의 데이터를 StringBuilder객체로 이동
  37. Log.d("receive.class / 데이터 수신", "성공 : " + myCompleteMessage.toString() +"byte : " +numberOfBytesRead);//toString메소드를 통해
  38. /*
  39. myCompleteMessage = new StringBuilder(); //StringBuilder 객체 초기화
  40. Log.d("receive1.class / 데이터 수신", "성공 : " + myCompleteMessage.toString());//toString메소드를 통해
  41. numberOfBytesRead = buffRead.read(buff, 0, buff.length);//char 배열 buff에 받아들이고
  42. Log.d("receive2.class / 데이터 수신", "성공 : " + myCompleteMessage.toString());//toString메소드를 통해
  43. //받아들인 byte수를 반환
  44. myCompleteMessage.append(buff, 2, numberOfBytesRead-2); //buff의 데이터를 StringBuilder객체로 이동
  45. Log.d("receive.class / 데이터 수신", "성공 : " + myCompleteMessage.toString());//toString메소드를 통해
  46. //String으로 변환*/
  47. }
  48. } catch(Exception e) {
  49. Log.e("receive.class / 데이터 수신", "실패" + numberOfBytesRead);
  50. }
  51. }
  52. }