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) ; } }
//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) ; } }