Exemplo n.º 1
0
 public void WaitForData(Socket sok)
 {
     try
     {
         MultiPacket pak = new MultiPacket();
         pak.Socket = sok;
         //Console.WriteLine("Waiting for input.");
         sok.BeginReceive(pak.Buffer, 0, pak.Buffer.Length, SocketFlags.None, new AsyncCallback(OnDataReceived), pak);
     }
     catch
     {
         if (c_Server)
         {
             if (c_Names[sok] != null)
             {
                 BroadcastSystem(c_Names[sok].ToString() + General.Local(291));
             }
             c_Clients.Remove(sok);
             c_Names.Remove(sok);
         }
         else
         {
             BroadcastSystem(General.Local(290));
             CloseSlave();
         }
     }
 }
Exemplo n.º 2
0
        public void OnDataReceived(IAsyncResult asyn)
        {
            try
            {
                MultiPacket pak = (MultiPacket)asyn.AsyncState;

                byte[] buffer = new byte[1024];
                int    count  = pak.Socket.Receive(buffer);
                char[] chars  = new char[count];
                System.Text.Encoding.ASCII.GetDecoder().GetChars(buffer, 0, count, chars, 0);
                string input = new System.String(chars).Trim();

                //Console.WriteLine(pak.Socket + " " + input);

                if (c_Server)
                {
                    if (input.ToLower().IndexOf("<") != 0)
                    {
                        c_Names[pak.Socket] = input;
                        BroadcastSystem(input + General.Local(292));
                    }
                    else
                    {
                        Broadcast(input);
                        SendMaster(input);
                    }
                }
                else
                {
                    HandleInput(input);
                }

                WaitForData(pak.Socket);
            }
            catch
            {
                if (c_Server)
                {
                    CloseMaster();
                }
                else
                {
                    CloseSlave();
                }

                //Console.WriteLine(e.Message);
                //Console.WriteLine(e.StackTrace);
            }
        }
 public void WaitForData(Socket sok)
 {
     try
     {
         MultiPacket pak = new MultiPacket();
         pak.Socket = sok;
         //Console.WriteLine("Waiting for input.");
         sok.BeginReceive(pak.Buffer, 0, pak.Buffer.Length, SocketFlags.None, new AsyncCallback(OnDataReceived), pak);
     }
     catch (Exception /*e*/)// I HID e to stop warning message.
     {
         if (c_Server)
         {
             if(c_Names[sok] != null)
                 BroadcastSystem(c_Names[sok].ToString() + General.Local(291));
             c_Clients.Remove(sok);
             c_Names.Remove(sok);
         }
         else
         {
             BroadcastSystem(General.Local(290));
             CloseSlave();
         }
     }
 }