부스트 1.45 ASIO를 사용하여 Windows와 Mac에서 모두 실행되는 응용 프로그램에서 일부 소켓 연결을 처리합니다. Windows에서 다음 코드는 오류를 발생시키지 않으며 소켓은 완전히 닫힙니다. Mac의 경우 종료 및 종료 기능을 모두 주석 처리하면 "잘못된 파일 설명자"오류가 발생합니다. 이 코드를 호출하기 전까지는 소켓이 정상적으로 작동합니다. 그러나 종료 또는 닫기를 호출하자마자 오류가 발생합니다. 어떤 아이디어가 계속 될 수 있습니까? 이 작업을 수행하는 좋은 이유가없는 한잘못된 파일 기술자 닫기 부스트 소켓
if(socket.is_open())
{
socket.shutdown(socket.both);
socket.close();
}
이 코드 스 니펫의 의도를 분명히 알 수 있다면 도움이 될 것입니다. 일반적으로'~ socket()'dtor는 기본 네이티브 디스크립터 유형을 닫는다. 명시 적으로 닫는 이유가 있습니까? –
나는 소켓을 닫아야한다고 생각했다.이 오류는 분명히 (오류 자체 외에) 어떤 문제도 일으키지 않는 것처럼 보이기 때문에 소켓을 명시 적으로 닫을 필요가 없다면 행복하게 그게 내 인생과 함께 이동하고 이동하십시오. 그래서 명확히하기 위해 종료 또는 종료를 호출하지 않아도됩니까? –
답변을 –