클라이언트 : 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 ....