클라이언트 쪽에서 블록킹 상태가 되버립니다..
글쓴이: ing / 작성시간: 금, 2004/02/20 - 3:21오후
소켓프로그래밍 책을 보고 공부를 하고 있습니다..
아주 간단한 프로그램을 구현하고 있는데요..
클라이언트 쪽에서 접속을 하면 서버 쪽에서...
자식프로세스(서버 쪽)에서 클라이언트 쪽으로 문자열을
보내는데요...
소스 일부분..
자식프로세스 소스 일부분..
write(client_sock, lpMainString, sizeof(lpMainString)); read(client_sock, chBuffer, BUFSIZE);
클라이언트 부분 소스 일부분..
nStrLen = read(sock, chMessage, BUFSIZE-1); chMessage[nStrLen] = 0; fputs(chMessage, stdout); fflush(stdout);
일부분의 소스 입니다..
이렇게 구현하면 서버측에서 보내온 lpMainString을 클라이언트가 읽어서
출력해야 정상 아닌가요.. 계속 클라이언트 쪽이 블록킹이 걸립니다..
답변 부탁드립니다..아아..
Forums:
말씀 하신 내용과 올려주신 소스만으로 판단해보면client는 BU
말씀 하신 내용과 올려주신 소스만으로 판단해보면
client는 BUFSIZE-1 만큼의 data를 읽을 때까지 block되어있습니다.
고로 서버에서 BUFSIZE-1 보다 적은 data를 보내면 client는 계속해서 기다리게 됩니다.
read시에 timeout 시간을 주고 테스트 해보시기 바랍니다.
나를 죽이지 않는 모든 것은 나를 강하게 할 뿐이다.
댓글 달기