コード例 #1
0
ファイル: Socket.cpp プロジェクト: beyourself/RustEmu-Core
bool Socket::Open()
{
    if (out_buffer_.get())
        return false;

    // Store peer address.
    address_ = ObtainRemoteAddress();
    if (address_ == UNKNOWN_NETWORK_ADDRESS)
    {
        sLog.outError("bool Socket::Open() address_ == UNKNOWN_NETWORK_ADDRESS!");
        return false;
    }

    // Hook for the manager.
    if (!manager_.OnSocketOpen(shared_from_this()))
    {
        sLog.outError("if (!manager_.OnSocketOpen(shared_from_this()))");
        return false;
    }

    closed_ = false;

    // Allocate buffers.
    out_buffer_.reset(new NetworkBuffer(outgoing_buffer_size_));
    read_buffer_.reset(new NetworkBuffer(protocol::READ_BUFFER_SIZE));

    // Start reading data from client
    StartAsyncRead();

    return true;
}
コード例 #2
0
ファイル: Socket.cpp プロジェクト: Havoc/mangos-boost
bool Socket::Open()
{
    if (out_buffer_.get())
        return false;

    address_ = ObtainRemoteAddress();
    if (address_ == UNKNOWN_NETWORK_ADDRESS)
        return false;

    if (!manager_.OnSocketOpen(shared_from_this()))
        return false;

    closed_ = false;

    out_buffer_.reset(new NetworkBuffer(outgoing_buffer_size_));
    read_buffer_.reset(new NetworkBuffer(protocol::READ_BUFFER_SIZE));

    StartAsyncRead();

    return true;
}