Terraria.Netplay.FindNextOpenClientSlot C# (CSharp) Method

FindNextOpenClientSlot() private static method

private static FindNextOpenClientSlot ( ) : int
return int
        private static int FindNextOpenClientSlot()
        {
            for (int index = 0; index < Main.maxNetPlayers; ++index)
            {
                if (!Netplay.Clients[index].Socket.IsConnected())
                    return index;
            }
            return -1;
        }

Usage Example

Ejemplo n.º 1
0
        private static void OnConnectionAccepted(ISocket client)
        {
            int num = Netplay.FindNextOpenClientSlot();

            if (num != -1)
            {
                Netplay.Clients[num].Socket = client;
                Netplay.Clients[num].sendQueue.StartThread();

                Console.WriteLine(client.GetRemoteAddress() + " is connecting to slot {0}...", num);
            }
            else
            {
                using (var stream = new MemoryStream())
                {
                    using (var writer = new BinaryWriter(stream))
                    {
                        writer.Write((short)0);
                        writer.Write((byte)2);
                        writer.Write("Server is full.");
                        short position = (short)writer.BaseStream.Position;
                        writer.BaseStream.Position = 0L;
                        writer.Write((short)position);
                        byte[] data = stream.ToArray();
                        client.AsyncSend(data, 0, data.Length, delegate { });
                    }
                }
                client.Close();
            }
        }
All Usage Examples Of Terraria.Netplay::FindNextOpenClientSlot