마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

VB ( client ) 와 안드로이드 ( server ) 간의 소켓통신시 커넥션 문제

0 추천
클라이언트 : VB 6.0

서버 : 안드로이드 단말기

 

클라이언트 하나에서  5대의 폰으로 소켓으로 시그널을 보내려고 합니다.

일단 클라이언트 코드를 보니 VB6.0 으로 쓰레드 없이.....................

반복문으로 ................................

소켓

커넥션(폰1) ->  close

커넥션(폰2)  -> close

커넥션(폰3) -> close

커넥션(폰4) -> close

커넥션(폰5) -> close

이렇게 5번 돕니다.

소켓 커넥션(폰1) -> 커넥션(폰2) ->커넥션(폰3) ->커넥션(폰4) ->커넥션(폰5)

하고 마지막에 close도 해봤구요...

 
 

서버쪽은 일반적으로 돌아다니는 자바 서버 코드입니다.

폰 5대 모두 각자의 공유기 로컬IP와 같은 포트로 서버 소켓을 열어놓고  client = serverSocket.accept(); 로 기다리다가

클라이언트에서 커넥션 들어오면

BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
str = in.readLine();

해주고...  client.close();

 

일단 서버(폰5)대는 항상 돌고 있고 클라이언트는 특정 이벤트 발생시 5대에 신호를 다 쏴줍니다.

푸쉬기능과 똑같다고 보면 되고, 왜 푸시안쓰고 이짓을 하냐고는 물어보지 말아주세요 ㅠㅠ 이유가 있습니다.

폰에서 서버는 서비스로 돌리지 않고 그냥 쓰레드로 while 돌려놨습니다.

 

문제는...

이게 잘 돌아갈때가 있고, 5대 중에 2~3대만 갈때가 있고, 다 안갈때도 있고 합니다.

VB를 안해봐서 모르지만 ( 다른사람이 했음 )  대충 클라이언트 로그를 찍어보니

서버 IP가  없는 폰에서 연결 시간이 좀 오래걸리고 커넥션 타임아웃이 걸립니다;;;

(vb6.0에 쓰레드 기능 없다면서 그냥 이렇게 돌렸다고 합니다; )

 

그리고나서 다음 폰으로 보내는데 ... 그냥 갈때 있고 안갈때 있고 랜덤입니다 ㅡㅡ;

TCP노딜레이 설정이나, 리틀엔디안 빅엔디안 뭐 이런거랑 상관있는건가요 ...?

이거가지고 삽질중입니다.  지금 글 올라간 시각 보이시지요?  ㅠㅠ

Help ....
ankarkied (3,210 포인트) 님이 2013년 3월 30일 질문
ankarkied님이 2013년 3월 30일 수정

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...