안드로이드 개발 질문/답변
(글 수 40,700)
안녕하세요~
안드로이드(클라이언트)와 pc(서버)로 tcp통신을 구현하고있는데
클라이언트에서 서버로 메시지를 전송해서 디비와비교하여 결과값을받아오고 커맨드창으로 출력까지 문제없이됩니다.
그런데 이 결과값들을 다시 클라이언트로 flush() 하려고하면 서버와 클라이언트 모두 멈춰버립니다.
(클라이언트로 다시 보내려는 값은 하나이구 "가나다라" 한글로 네글자입니다.)
바로 죽는것도 아니구 멈춰서 한 10분정도 대기하다가 죽어버립니다.
밑에가 클라이언트 부분이구요
밑에가 서버부분입니다.
서버로접속하려고하면 로그정보 딱 두개뜨면서 클라이언트가 멈춰버립니다.
서버에선 접속이 성공되었다고 나옵니다
서버에서 클라이언트로 데이터를 전송하는부분만 주석처리하면 잘실행되구요
주석처리하지않으면 접속만되고 멈춰버립니다.
그리고 서버를 강제로 종료시키면 그제서야 클라이언트가 다시 작동하구요.
여기저기 찾아봤는데 답변을 찾지못해서 이렇게 글을 올립니다~ 어떡해야되나요??
안드로이드(클라이언트)와 pc(서버)로 tcp통신을 구현하고있는데
클라이언트에서 서버로 메시지를 전송해서 디비와비교하여 결과값을받아오고 커맨드창으로 출력까지 문제없이됩니다.
그런데 이 결과값들을 다시 클라이언트로 flush() 하려고하면 서버와 클라이언트 모두 멈춰버립니다.
(클라이언트로 다시 보내려는 값은 하나이구 "가나다라" 한글로 네글자입니다.)
바로 죽는것도 아니구 멈춰서 한 10분정도 대기하다가 죽어버립니다.
밑에가 클라이언트 부분이구요
Socket socket = new Socket("203.230.156.214", Integer.parseInt("5000")); bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(),"UTF-8")); br = new BufferedReader(new InputStreamReader(socket.getInputStream(),"UTF-8")); bw.write(query); bw.flush(); String compnm = br.readLine(); test.setText("result" + " : " + compnm); br.close(); bw.close(); socket.close();
밑에가 서버부분입니다.
Socket socket = ss.accept(); System.out.println(new Date().toString() + ":" + socket.toString()); BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream(),"UTF-8")); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(),"UTF-8")); sql = br.readLine(); System.out.println(sql); ResultSet rs = stmt.executeQuery(sql);
String bbb = rs.getString("compnm"); bw.write(rs.getString("compnm")); bw.flush();
br.close(); bw.close(); socket.close();
서버로접속하려고하면 로그정보 딱 두개뜨면서 클라이언트가 멈춰버립니다.
서버에선 접속이 성공되었다고 나옵니다
서버에서 클라이언트로 데이터를 전송하는부분만 주석처리하면 잘실행되구요
주석처리하지않으면 접속만되고 멈춰버립니다.
07-11 09:33:07.554: INFO/global(265): Default buffer size used in BufferedWriter constructor. It would be better to be explicit if an 8k-char buffer is required. 07-11 09:33:07.574: INFO/global(265): Default buffer size used in BufferedReader constructor. It would be better to be explicit if an 8k-char buffer is required.
그리고 서버를 강제로 종료시키면 그제서야 클라이언트가 다시 작동하구요.
여기저기 찾아봤는데 답변을 찾지못해서 이렇게 글을 올립니다~ 어떡해야되나요??
줄단위로 처리하는데 "\n" 을 추가하지않아서 오류가 났던것같습니다~
답변주신분들 감사합니다 ^^