안녕하세요.
cocos2d-x를 사용하여 클라이언트를 코딩하고 있습니다.
"\n" 을 딜리미터로 이용하여 "\n" 단위로 패킷을 받아 처리하려고 async_read_until 을 사용하고 있습니다.
제가알기로는 async_read_until에 등록된 on_read 핸들러가 호출되어
그 내부에서 패킷 받는것을 처리하는것으로 알고 있는데... 잘 안됩니다.
다음은 코드인데요... 가르쳐주시면 너무 감사드리겠습니다.
// 메세지 받는 부분
void Asio_Handler::handle_Recv() {
boost::system::error_code error;
if (error) {
CCLog(">>> + error!!");
isConnect = false;
} else {
CCLog(">>> + handler_Recv!!"); <----- 이것은 호출이 됩니다.
async_read_until(io_Socket, s_buf, "\n",
boost::bind(&Asio_Handler::on_read,
this,
boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred));
}
}
// on_Read 핸들러
void Asio_Handler::on_read(const boost::system::error_code& e, std::size_t size) {
CCLog(">>> + I received message~!!!"); <----- 호출이 안됩니다.
}