[Boost] boost 라이브러리 asio 상세 설명 6 - boost::asio:::error의 용법 분석
1. 개요 일반적으로 우리가 error를 수신하는 데 사용하는 유형을 만드는 것은 대부분 다음과 같다.boost::system::error_code error
우리는 이 유형으로 함수에서 발생하는 오류를 받아들인다. 예를 들어 다음과 같다.socket.connect(endpoint, error);
연결이 실패하면 오류 형식이 error에 저장됩니다. 예를 들어 호스트 연결 실패가 이러한 오류를 되돌릴 수 있습니다.boost::asio::error::host_not_found;
if(error)를 통해 error를 감지한 후 이상을 던집니다.throw boost::system::system_error(error);
주의해야 할 것은 우리의 error가 시스템으로 전환되었다는 것이다_오류가 발생했습니다.
표시 오류가 간단합니다. std::cout2. 비동기식 호출 발생하는 이상 error의 전달은 문제입니다. 비동기적으로 즉시 되돌아오고 국부 변수는 소각되기 때문입니다.boost::asio::placeholders::error, 이상한 상태를 저장합니다. 이렇게 하면 비동기 호출을 사용할 때
socket::async_write_some 때 boost:::system::error_코드 오류입니다. boost::asio::placeholders::error를 매개 변수로 사용하면 됩니다.
같은 이치, 우리sync_write_some는 읽기와 쓰기 데이터의 크기를 되돌려야 합니다. 기쁜 것은 boost::asio::placeholders:bytes_transferred는 매개 변수로 데이터 크기를 저장할 수 있습니다.
인스턴스는 다음과 같습니다.boost::asio::async_write(socket_,
boost::asio::buffer(message_),
boost::bind(&tcp_connection::handle_write, shared_from_this(),
boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred));
참고수첩에 명확하게 나와 있는데 다음 두 종류는 비동기적으로 bind를 사용할 때 디자인한 것이다.boost::asio::placeholders::error
boost::asio::placeholders::bytes_transferred
3. 동기화 호출 그럼요. boost::system:::error_코드 error는 또한 유용합니다. 동기화할 때 우리는 그것을 매개 변수로 사용합니다.예:boost::system::error_code error;
size_t len = socket.read_some(boost::asio::buffer(buf), error);
마찬가지로 비동기적으로 호출되는 리셋handle에서도 그것을 매개 변수로 사용한다.void handle_write(const boost::system::error_code& /*error*/,
size_t /*bytes_transferred*/)
{
}
4. 요약 비동기적으로 boost::asio::placeholders::error,boost:asio::placeholders::bytes_transferred
동기화는 boost::system::error_code
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSON
JSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다.
그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다.
저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
boost::system::error_code error
socket.connect(endpoint, error);
boost::asio::error::host_not_found;
throw boost::system::system_error(error);
2. 비동기식 호출 발생하는 이상 error의 전달은 문제입니다. 비동기적으로 즉시 되돌아오고 국부 변수는 소각되기 때문입니다.boost::asio::placeholders::error, 이상한 상태를 저장합니다. 이렇게 하면 비동기 호출을 사용할 때
socket::async_write_some 때 boost:::system::error_코드 오류입니다. boost::asio::placeholders::error를 매개 변수로 사용하면 됩니다.
같은 이치, 우리sync_write_some는 읽기와 쓰기 데이터의 크기를 되돌려야 합니다. 기쁜 것은 boost::asio::placeholders:bytes_transferred는 매개 변수로 데이터 크기를 저장할 수 있습니다.
인스턴스는 다음과 같습니다.boost::asio::async_write(socket_,
boost::asio::buffer(message_),
boost::bind(&tcp_connection::handle_write, shared_from_this(),
boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred));
참고수첩에 명확하게 나와 있는데 다음 두 종류는 비동기적으로 bind를 사용할 때 디자인한 것이다.boost::asio::placeholders::error
boost::asio::placeholders::bytes_transferred
3. 동기화 호출 그럼요. boost::system:::error_코드 error는 또한 유용합니다. 동기화할 때 우리는 그것을 매개 변수로 사용합니다.예:boost::system::error_code error;
size_t len = socket.read_some(boost::asio::buffer(buf), error);
마찬가지로 비동기적으로 호출되는 리셋handle에서도 그것을 매개 변수로 사용한다.void handle_write(const boost::system::error_code& /*error*/,
size_t /*bytes_transferred*/)
{
}
4. 요약 비동기적으로 boost::asio::placeholders::error,boost:asio::placeholders::bytes_transferred
동기화는 boost::system::error_code
boost::asio::async_write(socket_,
boost::asio::buffer(message_),
boost::bind(&tcp_connection::handle_write, shared_from_this(),
boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred));
boost::asio::placeholders::error
boost::asio::placeholders::bytes_transferred
boost::system::error_code error;
size_t len = socket.read_some(boost::asio::buffer(buf), error);
마찬가지로 비동기적으로 호출되는 리셋handle에서도 그것을 매개 변수로 사용한다.void handle_write(const boost::system::error_code& /*error*/,
size_t /*bytes_transferred*/)
{
}
4. 요약 비동기적으로 boost::asio::placeholders::error,boost:asio::placeholders::bytes_transferred
동기화는 boost::system::error_code
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.