static private void TrataSocketFlash() { try { String data = null; while (true) { byte[] bytes = new byte[1024]; int bytesRec = flashGame.Receive(bytes); data += Encoding.ASCII.GetString(bytes, 0, bytesRec); if (data.Equals("")) { break; } if (data.IndexOf("EOF") > -1) { // Aqui é verificado o que o flash mandou // Se tivemos algum status do jogo if ((data.IndexOf("ACERTOU") > -1) || (data.IndexOf("ERROU") > -1) || (data.IndexOf("FIM") > -1)) { // Preciso enviar informações para a URA EnviaDadosUra(data); } // Se foi uma desconexão if (data.IndexOf("DESCONECTOU") > -1) { break; } // break; data = ""; } } // LogWriter.getLogWriter().GravaLog("Flash Socket closed",LogWriter.getLogWriter().LogOpName); flashGame.Shutdown(SocketShutdown.Both); flashGame.Close(); } catch (Exception e) { LogWriter.getLogWriter().GravaLog("Error in flash socket:" + e.ToString(), LogWriter.getLogWriter().LogErrorName); } }
/// <summary> /// Set things in motion so your service can do its work. /// </summary> protected override void OnStart(string[] args) { this.log = LogWriter.getLogWriter(); this.log.GravaLog("Log Error File Started", this.log.LogErrorName); this.log.GravaLog("Log Operation File Started", this.log.LogOpName); try { t = new Thread(new ThreadStart(StartListening)); t.Priority = ThreadPriority.Lowest; t.Start(); } catch (Exception ex) { this.log.GravaLog("Erro interno:" + ex.Message, this.log.LogOpName); } }
static private void TrataSocketUra() { try { String data = Thread.CurrentThread.Name; data = data + "\0"; // Deve-se colocar o \0 quando enviar algo para o flash! // Enviando para o jogo se o servidor estiver conectado ao jogo if (flashGame.Connected) { byte[] msg = Encoding.ASCII.GetBytes(data); flashGame.Send(msg, msg.Length, 0); } else { LogWriter.getLogWriter().GravaLog("Cannot send URA data to Flash.", LogWriter.getLogWriter().LogOpName); } } catch (Exception e) { LogWriter.getLogWriter().GravaLog("Error in URA socket:" + e.ToString(), LogWriter.getLogWriter().LogErrorName); } }
static void EnviaDadosUra(string dados) { int Maquina = 0; int Canal = 0; string NumeroA = ""; string NumeroB = ""; string Status = ""; XmlTextReader reader; try { reader = new XmlTextReader(dados, XmlNodeType.Element, null); reader.WhitespaceHandling = WhitespaceHandling.None; while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { switch (reader.Name) { case "MAQ": Maquina = int.Parse(reader.ReadString()); break; case "CANAL": Canal = int.Parse(reader.ReadString()); break; case "NUMA": NumeroA = reader.ReadString(); break; case "NUMB": NumeroB = reader.ReadString(); break; case "STATUS": Status = reader.ReadString(); break; } } } if (reader != null) { reader.Close(); } // SqlConnection con1 = new SqlConnection("Server=200.212.36.130;Database=Talk;User id=sa;Password=milano4081;Pooling=false"); // SqlConnection con1 = new SqlConnection("Server=192.168.1.102;Database=Talk;User id=sa;Password=talk;Pooling=false"); SqlConnection con1 = new SqlConnection("Server=192.168.3.101;Database=Talk;User id=sa;Password=milano4081;Pooling=false"); con1.Open(); SqlCommand sqlcmdGravaURA = new SqlCommand(); sqlcmdGravaURA.Connection = con1; sqlcmdGravaURA.CommandType = System.Data.CommandType.Text; sqlcmdGravaURA.CommandText = "UPDATE TB_URA_GAMES SET "; sqlcmdGravaURA.CommandText += " FLAG='" + Status.Substring(0, 1) + "'"; sqlcmdGravaURA.CommandText += " WHERE MAQ = " + Maquina.ToString(); sqlcmdGravaURA.CommandText += " AND CANAL = " + Canal.ToString(); sqlcmdGravaURA.CommandText += " AND NUMA = '" + NumeroA + "'"; sqlcmdGravaURA.CommandText += " AND NUMB = '" + NumeroB + "'"; sqlcmdGravaURA.ExecuteNonQuery(); } catch (Exception eX) { LogWriter.getLogWriter().GravaLog("Error in XML:" + eX.ToString(), LogWriter.getLogWriter().LogErrorName); } }