Ejemplo n.º 1
0
        /// <summary>
        /// Recibe un mensaje de TGC por un socket
        /// </summary>
        /// <param name="socket">Socket del cual recibir</param>
        /// <param name="msgType">Tipo de mensaje esperado</param>
        /// <returns>Mensaje recibido o null si recibió mal</returns>
        public static TgcSocketRecvMsg receiveMessage(Socket socket, TgcSocketMessageHeader.MsgType msgType)
        {
            try
            {
                //Recibir header
                byte[] headerData = new byte[TgcSocketMessageHeader.HEADER_SIZE];
                int recv = socket.Receive(headerData, headerData.Length, SocketFlags.None);
                if (recv == TgcSocketMessageHeader.HEADER_SIZE)
                {
                    int msgLength = BitConverter.ToInt32(headerData, 0);

                    //Recibir cuerpo del mensaje
                    byte[] msgData = new byte[msgLength];
                    recv = socket.Receive(msgData, msgData.Length, SocketFlags.None);
                    if (recv == msgLength)
                    {
                        TgcSocketRecvMsg recvMsg = new TgcSocketRecvMsg(msgData);
                        return recvMsg;
                    }
                }
            }
            catch (Exception)
            {
                return null;
            }
            return null;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Enviar un mensaje de TGC por un socket
        /// </summary>
        /// <param name="socket">Socket por el cual enviar</param>
        /// <param name="msg">Mensaje a enviar</param>
        /// <param name="msgType">Tipo de mensaje a enviar</param>
        /// <returns>True si lo pudo hacer bien</returns>
        public static bool sendMessage(Socket socket, TgcSocketSendMsg msg, TgcSocketMessageHeader.MsgType msgType)
        {
            try
            {
                //Enviar Header
                byte[] msgBytes = msg.getBytes();
                byte[] data = BitConverter.GetBytes(msgBytes.Length);
                socket.Send(data);

                //Enviar msg
                socket.Send(msgBytes);
            }
            catch (Exception)
            {
                return false;
            }
            
            return true;
        }