예제 #1
0
        /// <summary>
        /// This loop waits for incoming data
        /// </summary>
        public void AwaitData()
        {
            try
            {
                int i;
                while ((i = stream.Read(bytes, 0, bytes.Length)) != 0)
                {
                    //Incoming data is stored in buffer
                    data = System.Text.Encoding.ASCII.GetString(bytes, 0, i);

                    //Username, message_type, and message being parsed from the data
                    string       name        = data.Substring(0, data.IndexOf(':'));
                    MESSAGE_TYPE messageType = (MESSAGE_TYPE)Enum.Parse(typeof(MESSAGE_TYPE), data.Substring(data.IndexOf("//") + 2));
                    string       message     = data.Substring(data.IndexOf(':') + 1, data.IndexOf("//") - data.IndexOf(':') - 1);

                    //Calls an event to write to the console
                    chatEventHandler?.Invoke(this, new MessageRecievedEventArgs(name, messageType, message));
                }
            }
            catch (System.IO.IOException)
            {
                ServerHandler.DisconnectClient(this);
            }
            catch (Exception)
            {
                Console.WriteLine("Error Occurred");
                ServerHandler.DisconnectClient(this);
            }
        }
예제 #2
0
 public static void Main(string[] args)
 {
     ServerHandler.Start(13000);
     ServerHandler.BeginAcceptConnections();
 }