Example #1
0
        private void ListeningForConnectionTCP()
        {
            try
            {
                TcpListener = new TcpListener(IPAddress.Any, 1337);
                TcpListener.Start();
                ServerVM.WriteToLog($"TCP-Server gestartet.\nPort: 1337");
                while (!CloseApplication)
                {
                    Thread.Sleep(20);
                    //blocks until a client has connected to the server
                    if (TcpListener.Pending())
                    {
                        TcpClient client = TcpListener.AcceptTcpClient();
                        if (null != client)
                        {
                            SocketMember  member       = new SocketMember(client);
                            NetworkStream clientStream = client.GetStream();

                            byte[] message = new byte[4096];                 // Dies ist unser Buffer
                            int    bytesRead;
                            bytesRead = clientStream.Read(message, 0, 4096); // Hier warten wir darauf bis der Client uns Daten sendet - diese werden in einem ByteArray gespeichert

                            if (bytesRead > 0)
                            {
                                String receivedMessage = new ASCIIEncoding().GetString(message);

                                member.Name      = receivedMessage;
                                member.LoginTime = DateTime.Now;
                            }
                            ListOfAllConnectedMember.Add(member);
                        }

                        //create a thread to handle communication
                        //with connected client
                        Thread clientThread = new Thread(new ParameterizedThreadStart(HandleClientComm));
                        clientThread.Start(client);
                    }
                }
            }
            catch (Exception ex)
            {
                string msg = "Ein Fehler ist aufgetreten: " + ex.Message;
                Console.WriteLine(msg);
                ServerVM.WriteToLog(msg);
            }
            TcpListener.Stop();
        }
Example #2
0
        private void HandleClientComm(Object client)     // Der Delegate erwartet einen Typ "Object"
        {
            TcpClient    Client     = (TcpClient)client; // Diesen casten wir in "TcpClient"
            SocketMember tempMember = ListOfAllConnectedMember.SingleOrDefault(c => c.TcpClient == Client);

            if (tempMember.Name.Contains('\0'))
            {
                tempMember.Name = tempMember.Name.Split('\0').First();
            }

            string msg = $"Willkommen <{tempMember.Name}>. Sie wurden vom Server erfasst";

            // Nachricht wird an Client gesendet
            //tempMember.SendToClient(msg);

            ServerVM.WriteToLog(msg);
        }