Пример #1
0
        public void WeaveExecuteTokenoutMethod(string _token)
        {
            ////移出onlinetoken
            int count = weaveOnline.Count;

            WeaveOnLine[] ols = new WeaveOnLine[count];
            weaveOnline.CopyTo(0, ols, 0, count);
            foreach (WeaveOnLine onlinesession in ols)
            {
                if (onlinesession.Token == _token)//temp[1])
                {
                    foreach (WeaveTCPCommandItem cmdItem in weaveTCPCommandItems)
                    {
                        try
                        {
                            cmdItem.WeaveTcpCmd.Tokenout(onlinesession);
                        }
                        catch (Exception ex)
                        {
                            WeaveLogEvent?.Invoke("Tokenout", ex.Message);
                        }
                    }
                    weaveOnline.Remove(onlinesession);
                    return;
                }
            }
        }
Пример #2
0
 public void WeaveExcCmdNoCheckCmdName(byte command, string data, System.Net.Sockets.Socket soc)
 {
     foreach (CmdWorkItem cmd in CmdWorkItems)
     {
         try
         {
             cmd.WeaveTcpCmd.Runcommand(command, data, soc);
         }
         catch (Exception ex)
         {
             WeaveLogEvent?.Invoke("receiveevent", ex.Message);
         }
     }
 }
Пример #3
0
 /// <summary>
 /// 执行继承自WeaveTCPCommand类里面的Runcommand方法
 /// </summary>
 /// <param name="command"></param>
 /// <param name="data"></param>
 /// <param name="soc"></param>
 public void WeaveExecuteRuncommandMethod(byte command, string data, System.Net.Sockets.Socket soc)
 {
     foreach (WeaveTCPCommandItem cmd in weaveTCPCommandItems)
     {
         try
         {
             cmd.WeaveTcpCmd.Runcommand(command, data, soc);
         }
         catch (Exception ex)
         {
             WeaveLogEvent?.Invoke("receiveevent", ex.Message);
         }
     }
 }
Пример #4
0
        public void WeaveAddOnLineTokenIn(string _s, Socket soc)
        {
            WeaveOnLine ol = new WeaveOnLine();

            ol.Token  = _s;
            ol.Socket = soc;
            weaveOnline.Add(ol);
            foreach (WeaveTCPCommandItem weaveTCPCommandItem in weaveTCPCommandItems)
            {
                try
                {
                    weaveTCPCommandItem.WeaveTcpCmd.TokenIn(ol);
                }
                catch (Exception ex)
                {
                    WeaveLogEvent?.Invoke("Tokenin", ex.Message);
                }
            }
        }
Пример #5
0
 void P2ServerReceiveHander(byte command, string data, System.Net.Sockets.Socket soc)
 {
     try
     {
         if (command == 0xff)
         {
             WeaveExcCmdNoCheckCmdName(command, data, soc);
             try
             {
                 string[] temp = data.Split('|');
                 if (temp[0] == "in")
                 {
                     //加入onlinetoken
                     WeaveOnLine ol = new WeaveOnLine();
                     ol.Token  = temp[1];
                     ol.Socket = soc;
                     weaveOnline.Add(ol);
                     foreach (CmdWorkItem CI in CmdWorkItems)
                     {
                         try
                         {
                             CI.WeaveTcpCmd.TokenIn(ol);
                         }
                         catch (Exception ex)
                         {
                             WeaveLogEvent?.Invoke("Tokenin", ex.Message);
                         }
                     }
                     return;
                 }
                 else if (temp[0] == "Restart")
                 {
                     int           count = weaveOnline.Count;
                     WeaveOnLine[] ols   = new WeaveOnLine[count];
                     weaveOnline.CopyTo(0, ols, 0, count);
                     string IPport = ((System.Net.IPEndPoint)soc.RemoteEndPoint).Address.ToString() + ":" + temp[1];
                     foreach (WeaveOnLine ol in ols)
                     {
                         try
                         {
                             if (ol.Socket != null)
                             {
                                 String IP = ((System.Net.IPEndPoint)ol.Socket.RemoteEndPoint).Address.ToString() + ":" + ((System.Net.IPEndPoint)ol.Socket.RemoteEndPoint).Port;
                                 if (IP == IPport)
                                 {
                                     ol.Socket = soc;
                                 }
                             }
                         }
                         catch { }
                     }
                 }
                 else if (temp[0] == "out")
                 {
                     ////移出onlinetoken
                     int           count = weaveOnline.Count;
                     WeaveOnLine[] ols   = new WeaveOnLine[count];
                     weaveOnline.CopyTo(0, ols, 0, count);
                     foreach (WeaveOnLine onlinesession in ols)
                     {
                         if (onlinesession.Token == temp[1])
                         {
                             foreach (CmdWorkItem cmdItem in CmdWorkItems)
                             {
                                 try
                                 {
                                     cmdItem.WeaveTcpCmd.Tokenout(onlinesession);
                                 }
                                 catch (Exception ex)
                                 {
                                     WeaveLogEvent?.Invoke("Tokenout", ex.Message);
                                 }
                             }
                             weaveOnline.Remove(onlinesession);
                             return;
                         }
                     }
                 }
             }
             catch { }
             return;
         }
         else
         {
             WeaveExcCmd(command, data, soc);
         }
     }
     catch { return; }
     //System.Threading.ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(exec));
 }