コード例 #1
0
        public bool Send(int serverID, int moduleID, NetworkCode.ASteambotCode netcode, string data)
        {
            GameServer gs = GetServerByID(serverID);

            if (gs == null)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("Could NOT send mesage to server; server has no valid ID. Restart ASteambot_Core on the problematic server.");
                Console.ForegroundColor = ConsoleColor.White;

                return(false);
            }

            if (!gs.Send(moduleID, netcode, data))
            {
                foreach (Bot bot in OnlineBots)
                {
                    foreach (GameServer g in bot.Manager.Servers)
                    {
                        if (g.Alive == false || g.SocketConnected() == false)
                        {
                            bot.SteamchatHandler.ServerRemoved(gs.ServerID);
                        }
                    }
                    //bot.Manager.Servers.RemoveAll(gs => gs.Alive == false);
                }
            }

            return(true);
        }
コード例 #2
0
ファイル: GameServer.cs プロジェクト: kgns/ASteambotOld
        public bool Send(int moduleID, NetworkCode.ASteambotCode netcode, string data)
        {
            string finaldata = tcppasswd + moduleID + ")" + ((int)netcode).ToString() + "|" + data + "<EOF>";
            int    size      = Encoding.ASCII.GetByteCount(finaldata);

            if (size > NetworkCode.MAX_CHUNK_SIZE)
            {
                List <string> chunks = ChunksUpto(finaldata, NetworkCode.MAX_CHUNK_SIZE).ToList();
                foreach (string chunk in chunks)
                {
                    dataQueue.Add(Encoding.UTF8.GetBytes(chunk));
                }
            }
            else
            {
                dataQueue.Add(Encoding.UTF8.GetBytes(finaldata));
            }

            /*try
             * {
             *  byte[] byteData = Encoding.UTF8.GetBytes(finaldata);
             *  if(byteData.Length > 900)
             *  {
             *      for(int i = 0; i < byteData.Length; i+=900)
             *      {
             *          if (i > byteData.Length)
             *              i = byteData.Length;
             *
             *          ArrayView<byte> p1 = new ArrayView<byte>(byteData, i, i+900);
             *          byte[] bytes = p1.ToArray();
             *          dataQueue.Add(bytes);
             *          socket.BeginSend(bytes, 0, bytes.Length, 0, new AsyncCallback(SendCallback), socket);
             *      }
             *  }
             *  else
             *  {
             *      dataQueue.Add(byteData);
             *      socket.BeginSend(byteData, 0, byteData.Length, 0, new AsyncCallback(SendCallback), socket);
             *  }
             * }
             * catch (Exception e)
             * {
             *  /*Console.ForegroundColor = ConsoleColor.Red;
             *  Console.WriteLine(e);
             *  Console.ForegroundColor = ConsoleColor.White;
             *  PrintSocketError(data);///
             *  Alive = false;
             *  return false;
             * }*/

            return(true);
        }
コード例 #3
0
ファイル: Manager.cs プロジェクト: alexandruionita/ASteambot
        public bool Send(int serverID, int moduleID, NetworkCode.ASteambotCode netcode, string data)
        {
            bool sendSuccess = false;

            do
            {
                GameServer gs = GetServerByID(serverID);

                if (gs == null)
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Could NOT send mesage to server; server has no valid ID. Restart ASteambot_Core on the problematic server.");
                    Console.ForegroundColor = ConsoleColor.White;

                    return(false);
                }

                Thread.Sleep(100);
                Console.WriteLine("Sending to " + gs.Name + "(" + gs.IP + ":" + gs.Port + ")");
                sendSuccess = gs.Send(moduleID, netcode, data);

                if (!sendSuccess)
                {
                    Console.WriteLine("Send data failed. Re-trying.");
                    foreach (Bot bot in OnlineBots)
                    {
                        foreach (GameServer g in bot.Manager.Servers)
                        {
                            if (g.Alive == false || g.SocketConnected() == false)
                            {
                                bot.SteamchatHandler.ServerRemoved(gs.ServerID);
                            }
                        }
                        //bot.Manager.Servers.RemoveAll(gs => gs.Alive == false);
                    }
                }
            } while (sendSuccess == false);

            /*if(gs == null)
             * {
             *  Console.ForegroundColor = ConsoleColor.Red;
             *  Console.WriteLine("Could NOT send mesage to server; server has no valid ID. Restart ASteambot_Core on the problematic server.");
             *  Console.ForegroundColor = ConsoleColor.White;
             *
             *  return false;
             * }
             *
             * gs.Send(moduleID, netcode, data);*/

            return(true);
        }
コード例 #4
0
        public bool Send(int serverID, int moduleID, NetworkCode.ASteambotCode netcode, string data)
        {
            GameServer gs = GetServerByID(serverID);

            if (!gs.Send(moduleID, netcode, data))
            {
                foreach (Bot bot in OnlineBots)
                {
                    foreach (GameServer g in bot.Manager.Servers)
                    {
                        if (g.Alive == false || g.SocketConnected() == false)
                        {
                            bot.SteamchatHandler.ServerRemoved(gs.ServerID);
                        }
                    }
                    //bot.Manager.Servers.RemoveAll(gs => gs.Alive == false);
                }
            }

            return(true);
        }