서버/클라이언트 통신을 잘 하다가 갑자기 안될때(에러도 안남 ㅠㅠ)
글쓴이: lansea / 작성시간: 금, 2008/09/26 - 8:57오후
클라이언트가 서버에 접속해서 데이터 요청을 하면 서버에서는 스트림을 보냅니다.
클라이언트는 스트림을 받다가 자기 버퍼가 거의 차면 서버에 잠시 대기하라는 메세지를 보내서 스트림을 잠시 멈추게 합니다
중지된 시간은 거의 1분 안되는 시간이구요
이 시간동안 클라이언트는 자기가 살아있음을 알리는 메세지를 주기적으로 10초 마다 보냅니다.
거의 데이터가 2G가 정도되는데요.. 한 1/3 정도 전송했을 때
잠시 전송을 중지 요청하고...클라이언트에서 살아 있다는 메세지를 2~3번 받고 나면 서버에 아무 메세지가 안옵니다.
클라이언트에서는 정상적으로 메세지를 보냈고
서버에서도 에러가 나는게 아니라 설정해둔 메세지 안 받은 시간이 너무 길어져서 클라이언트와의 접속을 끊어버리는 거구요
데드락이 걸리는것도 아니구요.
클라이언트에서는 계속 정상적으로 메세지를 보내고 있습니다.
그리고 메세지를 못받는 위치가 거의 비슷합니다. 그렇다고 데이터에 이상이 있는건 아니구요
에러가 나는게 낫지.. 에러도 안나니까 답답하네요
이거 때문에 일주일 동안 너무 힘듭니다.. 혹시 이런 현상 보시거나 원인 아시는분..?
Forums:
해보셨겠지만,
해보셨겠지만, 혹시나 해서..
버퍼때문에 잠깐 멈출때, 양쪽에서 모두 tcpdump 한번 떠보셨나요?
삽질의 대마왕...
삽질의 대마왕...
앗;;
tcpdump 생각은 못해봤네요
한번 해봐야 겠어요..
답글 갑사합니다 ^^
-----------------------------------------------
I'm free to be whatever I, whatever I Choose
-----------------------------------------------
I'm free to be whatever I, whatever I Choose
제 생각엔 어디선가
제 생각엔 어디선가 가정을 하거나, 어디선가 오류가 발생했는데 못 찾는 것 같습니다.
다시 한번 사용하는 전체 함수들의 메뉴얼(man page 등)을 다시 한번 보시고,
모든 경우의 수를 다시 생각해보길 바랍니다.
소스 코드가 있다면 도움을 줄 수 있겠지만.
지금 상황에서 도움을 드릴만한 것은 다시 한번 차근 차근 살펴보라는
말이네요. 디버깅도 중요하지만 오류가 생기기 전에 모든 것을 정확히
작성하는 습관이 더 중요합니다.
..
원인을 찾았습니다.
tcpdump, wireshark로 확인결과 서버에서는 동작한건 맞구요.. (실제로 서버에 메세지가 안온거였습니다)
클라이언트 측에서 문제가 있었습니다.
클라이언트 측에서 아직 디버깅 중이구요. 어쨌든 제가 서버 파트라~ 맘이 놓이네요..
답변 주신 분들 감사합니다
(제가 리눅스한지 얼마 안되어서 wireshark가 리눅스에서 되리라고 생각을 못했네요 ..
알았으면 해보는건데..)
-----------------------------------------------
I'm free to be whatever I, whatever I Choose
-----------------------------------------------
I'm free to be whatever I, whatever I Choose
..
원인을 찾았습니다.
tcpdump, wireshark로 확인결과 서버에서는 동작한건 맞구요.. (실제로 서버에 메세지가 안온거였습니다)
클라이언트 측에서 문제가 있었습니다.
클라이언트 측에서 아직 디버깅 중이구요. 어쨌든 제가 서버 파트라~ 맘이 놓이네요..
답변 주신 분들 감사합니다
(제가 리눅스한지 얼마 안되어서 wireshark가 리눅스에서 되리라고 생각을 못했네요 ..
알았으면 해보는건데..)
-----------------------------------------------
I'm free to be whatever I, whatever I Choose
-----------------------------------------------
I'm free to be whatever I, whatever I Choose
댓글 달기