총 게시물 39,202건, 최근 2 건 안내 RSS 글쓰기
이전글  다음글  목록 글쓰기
[안드로이드]

안드로이드 채팅창에 서버에서 보낸 대화내용이 바로 안떠요.

글쓴이 : pldbc 날짜 : 2018-05-06 (일) 15:32 조회 : 3728
글주소 : http://www.androidside.com/B49/169806
 
  오라클자바교육센터 구로본점
안드로이드전문교육, SDK실무개발, APP개발프로젝트, 실습폰지원, 재직자환급
www.oraclejava.co.kr
  임베디드 시스템 마이크로비젼
임베디드 개발보드, 개발용역, IAR 컴파일러 총판, 에뮬레이터.
www.mvtool.co.kr
  취업브랜드파워 1위 잡코리아
안드로이드, 직무별 산업별 궁금한 채용정보 다 모였다! 한눈에 보는 취업정보!
www.jobkorea.co.kr
신청하기


안드로이드, 자바 그리고 다양한 질문에 대해 성실히 답해드립니다. Q&A Jang

AsyncTask 를 이용하여 서버와 클라이언트간에 간단한 채팅 구현중인데요, 서버는 pc로 보구 클라이언트는 안드로이드폰이에요. 서버에서 메세지를 보내면 안드로이드 화면에서 근처에 버튼을 누르거나 edittext란에 한번 클릭을 하는등 다른 행동(?)을 먼저 해줘야 떠요. 1:1채팅이라는게 상대편이 메시지를 보내면 다른 상대는 아무행동 필요없이
화면에 떠야하는데 마치 웹페이지 새로고침해야 변경된 내용보이듯 다른행동(?) 해줘야 화면에 내용이 뜹니다.

소스의 일부를 가져왔구요, 아래 빨간색이 데이터를 읽어와 화면에 출력하는 부분입니다.

@Override
protected Void doInBackground(Void... params) {
try{
socket = new Socket(ADDRESS, PORT); //Socket는 클라입장에서 서버의 정보.
dis = new DataInputStream(socket.getInputStream());
dos = new DataOutputStream( socket.getOutputStream() );
dos.writeUTF("aaaaaaaaaaa");
} catch (Exception e) {
e.printStackTrace();
}
while(true){ 
System.out.print( "Client input Message : " );
try{
String line = dis.readUTF();
testText.append(line+"\n");
} catch(Exception e){
System.out.println("Error: "+e.getMessage());
}
}
}



질문자가 자신의 포인트 5 점을 걸었습니다.
답변하시면 포인트 2을, 답변이 채택되면 포인트 4을 드립니다.

질문답변 게시판에서 궁금한 사항을 해결하셨다면, 애써 답변해주신 분께 잘 되었다고 따뜻한 댓글 한마디 남겨주세요.
그리고 답변해주신 분의 글을 '추천' 해주세요.
추천받으신 분에게 1포인트가, 추천하신 분에게도 1포인트가 적립됩니다. ^^

안사드 2018-05-08 (화) 11:21
AsyncTask로 하시지 마시고 일반 Thread로 하시고.String line = dis.readUTF();여기에 리턴이 오는지부터 확인해보세요. 접속 되었는지도 확인하시고요.
댓글주소 추천 0 반대 0
     
     
pldbc 2018-07-07 (토) 16:47

[@안사드]

답변을 늦게 봤습니다.;; AsyncTask는 뺐어요.

handler 라는거 사용해서 해결했습니다.

댓글주소 추천 0 반대 0
에찌 2018-05-09 (수) 17:36
오우.. 위험한 소스시네.. 

while (true) 이부분 사용하려면 어떤 문제에도 상관없이 100% 종료되는 로직이 필요해요.
종료되는 시점은 정상적으로 됬을 떄와 catch 부분 둘다 해줘야합니다.
댓글주소 추천 0 반대 0
     
     
pldbc 2018-07-07 (토) 16:48

[@에찌]

조금 수정은 했는데요, 100% 종료되는 로직은 아직 몰라서 못했어요.^^;;

댓글주소 추천 0 반대 0
이전글  다음글  목록 글쓰기

 


Copyright ⓒ www.androidside.com. All rights reserved.
채팅 권한: 글쓰기 1개
2레벨 이상만 대화 가능
공개 채팅: 평일 !(9시 ~ 17시),토,일
안사2 변경사항 보러가기 챗방이 잘 안보이면 크롬에서 접속해주세요
챗방 숨기기 |  챗방 보이기