소켓 프로그램에서 UDP로 파일 트랜스퍼시 ... 질문입니다
글쓴이: fowyou / 작성시간: 금, 2003/04/11 - 9:17오후
이번에 과제로 UDP 프로그램을 파일 트랜스퍼 프로그램을 짜고 있는데...
한가지 안풀리는 문제가 있습니다..
유디피로 리시브 시...
서버측에서 파일을 전송하다가 어떤 문제가 (물리적이던 프로그램적이던)
발생하면 서버측은 TIME OUT 에러를 발생시키면서 소켓이 close되는데
클라이언트측 (리시브 측)은
그냥 멈춰 버립니다..
디버깅 결과 리시브함수에서 계속 패킷이 오기만을 기다리면서
블럭킹 하고 있더군요..
제대로된 에러를 찍으면서 종료하고 싶은데.. 어떤 방법을 써야할찌..
도저히 알수 가 없습니다...
이 경우 TCP도 마찬가지로.. 전송측은 타임아웃에러가 나는데..
리시브측은 먹통이 되더군요..
어떤 해결책이라도??
Forums:
Re: 소켓 프로그램에서 UDP로 파일 트랜스퍼시 ... 질문입니다
select 나 소켓 옵션 등으로 timeout 을 설정할 수 있습니다.
Orion Project : http://orionids.org
한가지 더..
말씀중에 딴지일것 같지만, 의미를 명확하게 하기 위해서 UDP의 입장에서 데이터를 쏘는 프로그램이 클라이언트, 받는 쪽이 서버겠죠. 서버측에서는 UDP 프로토콜의 특성에 따라서 클라이언트가 언제 데이터가 오는지 데이터는 다 왔는지, 연결상태는 알 수 없습니다. 비연결지향형이기 때문입니다.
원하시는 결과를 얻으시려면 TCP를 사용하시면 됩니다.
========================================
* The truth will set you free.
댓글 달기