Exemplo n.º 1
0
 public void Start(string address, string name, MiMFa_Sender sender, MiMFa_Receiver reciever, bool ready = true)
 {
     OppositeName             = name;
     INAddress                = address;
     Sender                   = sender;
     Reciever                 = reciever;
     Reciever.EndReceiveData += Reciever_EndRecieveData;
     ShowDetail();
     if (ready)
     {
         SendReady();
     }
 }
Exemplo n.º 2
0
 public virtual object mode0(params object[] po)
 {
     if (reciever == null)
     {
         reciever = new MiMFa_Receiver();
         sender   = new MiMFa_Sender();
         reciever.EndReceiveData += (o, ip, i) => content = echo(o).ToString();
         sender.EndSendData      += (o, ip, i) => content = echo(ip).ToString();
     }
     sender.BufferSize = reciever.BufferSize = buffer;
     sender.Port       = reciever.Port = port;
     reciever.Timeout  = receivetimeout;
     sender.Timeout    = sendtimeout;
     sender.Run        = reciever.Run = !_pause;
     if ((_send || s) && po.Length > 1)
     {
         for (int i = 1; i < po.Length; i++)
         {
             sender.Start(po[0], po[i].ToString());//
         }
         return(Null);
     }
     else if (_receive || r)
     {
         if (po != null && po.Length > 0)
         {
             for (int i = 0; i < po.Length; i++)
             {
                 reciever.Start(IPAddress.Parse(po[i].ToString()));
             }
         }
         else
         {
             reciever.Start(IPAddress.Any);
         }
     }
     return(Null);
 }
Exemplo n.º 3
0
 private bool Start(params object[] po)
 {
     timer.Enabled = !_stop;
     if (_new || ipaddress == null || reciever == null || sender == null)
     {
         if (_password)
         {
             string[] stra = po[0].ToString().Split(',');
             setpassword("", stra.Last().Trim());
             if (stra.Length > 1)
             {
                 po[0] = MiMFa_CollectionService.GetAllItems(MiMFa_CollectionService.GetPart(stra, 0, stra.Length - 1), ",", 0);
             }
             else
             {
                 po[0] = "";
             }
         }
         ipaddress = IPAddress.Any;
         if (_all)
         {
             ipaddress = IPAddress.Any;
         }
         else
         {
             try
             {
                 ipaddress = IPAddress.Parse(MCL.Parse(po[0] + ""));
             }
             catch { }
         }
         reciever                 = new MiMFa_Receiver();
         sender                   = new MiMFa_Sender();
         sender.Port              = reciever.Port = port;
         sender.BufferSize        = reciever.BufferSize = buffer;
         reciever.EndReceiveData += (b, ip, i) =>
         {
             object o = MiMFa_IOService.Deserialize(b);
             if (string.IsNullOrEmpty(password))
             {
                 content = o;
             }
             else if (!MiMFa_CollectionService.ExistIn(remotedic, ip.Address))
             {
                 remotedic.Add(ip.Address, crypt.GetHashString(o.ToString()));
             }
             else if (remotedic[ip.Address] == password)
             {
                 content = o;
             }
             else
             {
                 remotedic[ip.Address] = crypt.GetHashString(o.ToString());
             }
         };
         reciever.SendCallBackData += (o, ip, i) =>
         {
             contentcallback = o;
         };
         reciever.Start(ipaddress);
         if (ipaddress != IPAddress.Any)
         {
             sender.InterlocutorIP = ipaddress;
         }
         return(false);
     }
     if (ipaddress != IPAddress.Any)
     {
         sender.InterlocutorIP = ipaddress;
     }
     else if (sender.InterlocutorIP == null || _ip || i)
     {
         try
         {
             string[] stra = po[0].ToString().Split(',');
             ipaddress = sender.InterlocutorIP = IPAddress.Parse(stra.First().Trim());
             if (stra.Length > 1)
             {
                 po[0] = MiMFa_CollectionService.GetAllItems(stra, ",", 1);
             }
             else
             {
                 po[0] = "";
             }
         }
         catch { }
     }
     sender.Port       = reciever.Port = port;
     sender.BufferSize = reciever.BufferSize = buffer;
     sender.Run        = reciever.Run = !_stop;
     return(true);
 }