내 http 서버에서 HTTP 응답으로 데이터가 전송되지 않습니다.

StackOverflow https://stackoverflow.com/questions/1805291

  •  05-07-2019
  •  | 
  •  

문제

수업을 위해 HTTP 서버를 만들기 위해 노력하고 있습니다. 그러나 반환 된 파일은 Firefox에 의해 표시되지 않습니다. 응답 헤더를 구성하고 오른쪽에 넣습니다. content-length 보내고 싶은 파일의 경우 전화로 응답 헤더를 보냅니다. send(). 다음은 사용합니다 send() 다시 파일을 보내려면 Firefox가 파일을 표시하지 않는 이유는 무엇입니까? 아래에 관련 코드를 게시하겠습니다.

코드에서 볼 수 있듯이 error_response, 404 오류 중. 라이브 HTTP 헤더를 사용하여 Firefox가 올바른 응답 헤더와 cout << error_response << endl; 올바른 응답을 인쇄합니다. Firefox가 표시하지 않는 이유는 무엇입니까? 한 번만 전화하면됩니다 send() 헤더와 응답 패킷이 포함되어 있습니까?

// send response headers
    response->Print( buffer, 2000 );
    if ( send( acc_tcp_sock, buffer, sizeof(buffer), 0 ) < 0 ) {
      cerr << "Unable to send response headers to client." << endl;
      return 5;
    }

    // if 200 and GET then send file
    if ( response->Get_code() == 200 && method == "GET" ) {
      // send file
    }

    // close file, if it has been opened
    if ( response->Get_code() == 200 ) {
      fclose( returned_file );
    }
    else if ( method == "GET" ) {
      if ( send( acc_tcp_sock, error_response.c_str(), error_response.length(), 0 ) < 0 ) {
        cerr << "Unable to send data to client." << endl;
        return 6;
      }
      cout << error_response << endl;
    }

    close( acc_tcp_sock ); // close the connection
  }

  return 0;
}
도움이 되었습니까?

해결책

응답 헤더를 보내려고 했습니까? 그리고 동일한 보내기 명령의 파일? Firefox가 무엇을 받고 있는지 알 수있는 방법이 있습니까? 서버에 HTTP 요청을 보내고 그 대가에 대한 대가를 확인하는 콘솔 앱인 HTTPREQUESTER 클래스를 사용하여 글을 쓰려고 시도 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top