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

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

글쓴이 : pldbc 날짜 : 2018-05-06 (일) 15:32 조회 : 2198
글주소 : http://www.androidside.com/B49/169806
 
  서울게임아카데미
추천게임학원, 2018년 한국 소비자만족지수 1위, 고용노동부국비지원, 수강료조회
www.seoulgame.co.kr
  임베디드 개발 마이크로비젼
임베디드 개발용역, 개발보드, 에뮬레이터.
www.mvtool.co.kr
  앱수정은 앱닥터
개발후에 수정개발은 무조건 앱닥터! 어렵게 개발자 찾지 말고 앱닥터에서 수정하세요
www.appdoctor.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 변경사항 보러가기 챗방이 잘 안보이면 크롬에서 접속해주세요
챗방 숨기기 |  챗방 보이기