Exemplo n.º 1
0
        public void receber()
        {
            string Mensagem;

            string[]   pts           = portas.Split(';');
            Socket     socketreceber = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
            EndPoint   endereco      = new IPEndPoint(IPAddress.Parse(IP), 9060);
            IPEndPoint endereco2;// = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 9061);

            byte[] data = new byte[1024];
            int    qtdbytes;

            socketreceber.Bind(endereco);
            while (true)
            {
                qtdbytes = socketreceber.ReceiveFrom(data, ref endereco);
                Mensagem = Encoding.UTF8.GetString(data, 0, qtdbytes);

                if (Mensagem.IndexOf("nEpr!") == 0)
                {
                    string[] aux  = Mensagem.Split('=');
                    string[] aux2 = aux[1].Split(':');
                    portas = portas = portas + aux2[0] + ";";
                    nicks  = nicks += aux2[1] + ";";
                    count += 1;
                    envusrs();
                }
                else if (Mensagem.IndexOf("nSpr!") == 0)
                {
                    string[] aux  = Mensagem.Split('=');
                    string[] aux2 = aux[1].Split(':');
                    portas = portas.Replace(aux2[0], null);
                    nicks  = nicks.Replace(aux2[1] + ";", "");
                    count -= 1;
                    envusrs();
                }
                else //if(portas.IndexOf(";") != -1)
                {
                    Socket   socketenviar = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
                    string[] pt           = portas.Split(';');

                    foreach (string prt in pt)
                    {
                        if (prt != "")
                        {
                            endereco2 = new IPEndPoint(IPAddress.Parse(prt), 9061);
                            socketenviar.SendTo(Encoding.UTF8.GetBytes(Encoding.UTF8.GetString(data, 0, qtdbytes)), endereco2);
                        }
                    }
                    socketenviar.Close();
                }
            }
        }