FTP 클라이언트를 쓰려고하는데 명령에 대한 서버 응답을 인쇄해야합니다. 이 명령 중 하나는 STAT입니다. 서버는 응답을 반환하고 응답을 read() 명령을 사용하여 읽을 수있는 소켓 버퍼에 있습니다. 문제는 STAT에 대한 응답 만 필요하기 때문에 END OF STATUS로 끝나는 것입니다. 이것은 내가 응답 읽고 쓴 코드 :소켓 버퍼 읽기
in = read(connFd, &timebuffer, sizeof(timebuffer));;
while(in>0){
printf("%s", timebuffer);
memset(&timebuffer, 0, sizeof timebuffer);
in = read(connFd, &timebuffer, sizeof(timebuffer));
}
memset(&timebuffer, 0, sizeof timebuffer);
내가 점점 오전 문제를 그 읽기() 함수는 버퍼를 통과하고 종료하지 않는 while 루프를 읽고 완료하고, 무한히 내 프로그램을 계속하면 그냥 거기 앉는다. Read() 함수가 데이터를 기다리고 있기 때문에 버퍼의 끝에 도달하면 read()가 멈추는지를 알 수있는 방법이 있는지 궁금합니다. read()가 x < 1을 반환 할 것이기 때문에 이것이 자동적으로 일어날 것이라고 생각했지만, 기다리고 있다면 문제가 무엇인지 이해하고있다. 어떻게 해결할 수 있을까요? 타임 아웃 (0)을 설정하는 방법이있어 이미 데이터가있는 경우에만 데이터를 읽습니다. 또한 내가 0으로 설정 한 "플래그"가 있음을 알고 있지만 많은 정보를 찾을 수 없습니다. 어떤 도움을 주셔서 감사합니다. 유일한 방법은 버퍼의 "END OF STATUS"문자열을 확인하는 것입니까? 내가 않는 strstr (버퍼)를 사용하는 것이
이