소켓 프로그래밍에서 서버 클라이언트간 파일 송, 수신시 장애문제 문의 드립니다.
글쓴이: ascpm / 작성시간: 화, 2008/05/20 - 1:42오전
간단하게 요점만 적겠습니다.
서버
send();
recv();
클라이언트
recv();
send();
코딩상에 저렇게 코딩이 되어있는데요. 즉, 서버에서 파일을 송신하고 클라이언트에서는 서버에서 송신한 파일을 수신하고, 수신후 클라이언트는 서버로 파일을 송신하고 서버는 클라이언트에서 송신한 파일을 수신하는 프로그램을 짜고있는데요.
문제는 서버에서 파일을 보낸후, 클라이언트에서 recv()로 넘어가기전에 서버쪽에서 recv()로 넘어가서 클라이언트에서는 한없이 기다리는 문제가 발생합니다.
문제해결을 위해 클라이언트에서 recv()문이 끝나고 send()문을 서버쪽으로 보내면 서버쪽에서는 그 다음 recv()문이 실행되게 할 순 없는건가요?
답변부탁드립니다.
Forums:
서버측의 send함수가
서버측의 send함수가 리턴하는 값을 보세요.
제가 보기에는 서버와 클라이언트의 함수 순서 문제라기 보다는
서버에서 데이터를 못보내고 리턴후 서로 recv를 하느라 대기하는것 같네요.
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.
해봤는데요.
해봤는데 recv는 되더군요..
서버측에서 recv를 호출하기전에 sleep()함수를 써서 대기를 시켜보아도 똑같은 현상이 발생합니다.
참고로 같은 컴퓨터상에서 실행했습니다.(vmware로)
해결했습니다.
문제는..
클라이언트에서 while문을 못빠져나와서 그런거였습니다.
암튼 답변 감사드립니다.
댓글 달기