void tcp_data_handler::update_status(int status,int error_type,int error_no) { int old_status = m_connect_status ; m_connect_status = status ; if(old_status != STATUS_CONNECTED && status == STATUS_CONNECTED ) { on_connected() ; return ; } else if( old_status != STATUS_CLOSED && status == STATUS_CLOSED ) { on_closed(error_type,error_no) ; return ; } }
void net_io::close() { try { _socket.shutdown(boost::asio::socket_base::shutdown_type::shutdown_both); } catch (std::exception& ex) { ex; /*dwarn("network session %s:%d exits failed, err = %s", _remote_addr.to_ip_string().c_str(), static_cast<int>_remote_addr.port, ex.what() );*/ } _socket.close(); on_closed(); }