Lidgren.Network.NetBuffer.ReadString C# (CSharp) Méthode

ReadString() public méthode

Reads a string written using Write(string)
public ReadString ( ) : string
Résultat string
        public string ReadString()
        {
            int byteLen = (int)ReadVariableUInt32();

            if (byteLen <= 0)
                return String.Empty;

            if ((ulong)(m_bitLength - m_readPosition) < ((ulong)byteLen * 8))
            {
                // not enough data
            #if DEBUG

                throw new NetException(c_readOverflowError);
            #else
                m_readPosition = m_bitLength;
                return null; // unfortunate; but we need to protect against DDOS
            #endif
            }

            if ((m_readPosition & 7) == 0)
            {
                // read directly
                string retval = System.Text.Encoding.UTF8.GetString(m_data, m_readPosition >> 3, byteLen);
                m_readPosition += (8 * byteLen);
                return retval;
            }

            byte[] bytes = ReadBytes(byteLen);
            return System.Text.Encoding.UTF8.GetString(bytes, 0, bytes.Length);
        }

Same methods

NetBuffer::ReadString ( string &result ) : bool

Usage Example

        private void receive()
        {
            NetBuffer buffer = new NetBuffer();

            bool keepGoing = true;
            while (keepGoing)
            {
                NetIncomingMessage message;
                while ((message = client.ReadMessage()) != null)
                {
                    switch (message.MessageType)
                    {
                        case NetIncomingMessageType.DebugMessage:
                            Console.WriteLine(buffer.ReadString());
                            break;

                        case NetIncomingMessageType.StatusChanged:
                            Console.WriteLine("New status: " + client.Status + " (Reason: " + buffer.ReadString() + ")");
                            if(client.Status != NetPeerStatus.Running)
                            {
                                keepGoing = false;
                                break;
                            }
                            break;

                        case NetIncomingMessageType.Data:
                            // Handle data in buffer here
                            break;
                    }
                }
            }
        }
All Usage Examples Of Lidgren.Network.NetBuffer::ReadString