void MOB_Connection::read_socket() { #ifdef DEF_USE_ASIO_ASYNC_READ _async_read(); #else _async_read_some(); #endif }
void tcp_basesession::handle_read_header( const boost::system::error_code& error ) { if( !is_valid() ) return; if( !error ) { _record_action(); unsigned short datalen = *(unsigned short*)m_recv_buffer; m_recv_size += datalen; if( datalen > m_message_head_len ) { //assert( datalen <= MAX_MESSAGE_LEN ); _async_read(datalen); //boost::asio::async_read( *m_socket, // boost::asio::buffer( m_recv_buffer + m_message_head_len, datalen - m_message_head_len ), // boost::bind( &tcp_basesession::handle_read_body, this, // boost::asio::placeholders::error ) ); } else if( datalen == m_message_head_len ) { _Read_Other(); } else { //printf( "datalen < 12, close socket\n" ); if( m_father ) { m_father->add_ban_ip( this->get_remote_address_ui(), 120, net_global::BAN_REASON_HACK_PACKET ); printf( "IP:[%s] try to hack server. Ban it for 120 seconds.\n", get_remote_address_string().c_str() ); } this->close(); net_global::write_close_log( "IP:[%s] message length is not valid", this->get_remote_address_string().c_str() ); } } else _on_close( error ); }