Beispiel #1
0
        static void UdpReceived(IAsyncResult iar)
        {
            IPEndPoint remoteIPEndPoint = null;

            byte[]       bytes = udpClient.EndReceive(iar, ref remoteIPEndPoint);
            SpamLanguage verb  = (SpamLanguage)bytes[0];

            switch (verb)
            {
            case SpamLanguage.Start:
                if (bytes.Length >= sizeof(Int32) + 1)
                {
                    sets.RobotId = BitConverter.ToInt32(bytes, 1);
                }

                if (!InProcess)
                {
                    InProcess = true;
                }
                break;

            case SpamLanguage.Stop:
                InProcess = false;
                break;
            }

            udpClient.BeginReceive(UdpReceived, iar);
        }
Beispiel #2
0
        static void Say(string Host, int Port,
                        SpamLanguage cmd, byte[] attachment)
        {
            byte[] dgrm = new byte[attachment.Length + 1];

            dgrm[0] = (byte)cmd;
            for (int i = 0; i < attachment.Length; i++)
            {
                dgrm[i + 1] = attachment[i];
            }

            UdpClient uclient = null;

            try
            {
                uclient = new UdpClient(Host, Port);
                uclient.Send(dgrm, dgrm.Length);
            }
            catch (SocketException sexc)
            {
                MessageBox.Show(sexc.Message);
            }
            finally { if (uclient != null)
                      {
                          uclient.Close();
                      }
            }
        }
Beispiel #3
0
        void Priem(IAsyncResult iar)
        {
            IPEndPoint remoteIPEndPoint = null;

            byte[] bytes = udpClient.EndReceive(iar, ref remoteIPEndPoint);

            SpamLanguage verb = (SpamLanguage)bytes[0];

            switch (verb)
            {
            case SpamLanguage.KnockKnock:
                if (DbAvailable)
                {
                    string ipStr = remoteIPEndPoint.Address.ToString();
                    dbClient.AddRobot(ipStr);
                }
                break;

            default:
                Thread messageThread = new Thread(new ThreadStart(delegate()
                {
                    MessageBox.Show("Incorrect command received");
                }));
                messageThread.Start();
                break;
            }

            udpClient.BeginReceive(Priem, iar);
        }
Beispiel #4
0
 static void Say(string Host, int Port, SpamLanguage cmd)
 {
     Say(Host, Port, cmd, new byte[0]);
 }
Beispiel #5
0
 /// <summary>
 /// Sends command to the Settings.SpamServerHost:Settings.SpamServerPort
 /// </summary>
 static void Say(SpamLanguage cmd)
 {
     Say(sets.SpamServerHost, sets.SpamServerPort, cmd);
 }