예제 #1
0
파일: Server.cs 프로젝트: freddeyyy/mmotest
        public Server(IPAddress ip, int port)
        {
            console = new consoleUI();

            int maxPlayers = 3;

            player = new Client[maxPlayers];
            reservedIDs = new Boolean[maxPlayers];

            for (int i = 0; i < reservedIDs.Length; i++)
            {
                reservedIDs[i] = false;
            }

            try
            {
                tcpListener = new TcpListener(IPAddress.Any, port);
                tcpListener.Start();
            }
            catch (Exception exp)
            {
                console.consoleW("Beim Versuch der Auflösung der Addresse: " + ip.ToString() + " enstand folgender Fehler:\r\n" + exp.Message, "error");
                while (true) ;
            }
        }
예제 #2
0
파일: Server.cs 프로젝트: freddeyyy/mmotest
        //Senden
        //socket.Send(encoding.GetBytes("BLABLA"));
        //Empfangen
        //
        //int received;
        //byte[] buffer;
        //buffer = new byte[maxBuffer];
        //
        //received = socket.Receive(buffer);
        //UTF8Encoding encoding = new UTF8Encoding();
        //empfangen = encoding.GetString(buffer, 0, received);
        public void wait()
        {
            try
            {
                console.consoleW("Waiting for connections...", "info");
                while (true)
                {
                    socket = tcpListener.AcceptSocket();
                    console.consoleW("New Client connected from" + socket.AddressFamily, "info");

                    int playerID = -1;
                    for (int i = 0; i < reservedIDs.Length; i++)
                    {
                        if (!reservedIDs[i])
                        {
                            playerID = i;
                            reservedIDs[i] = true;
                            break;
                        }
                    }
                    if (playerID == -1)
                    {
                        console.consoleW("But the server is full!", "error");
                        UTF8Encoding encoding = new UTF8Encoding();
                        socket.Send(encoding.GetBytes("Server ist voll!"));
                        socket.Close();
                        continue;
                    }
                    console.consoleW("He got ID" + playerID.ToString(), "error");
                    Client tempPlayer = new Client(this, socket, playerID);
                    tempPlayer.init();

                    player[playerID] = tempPlayer;
                    console.consoleW("Player ID" + playerID.ToString() + " connected!", "info");
                }
            }
            catch (Exception exp)
            {
                Console.WriteLine(exp.StackTrace);
                while (true) ;
            }
        }