コード例 #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
                var headerData = new byte[TgcSocketMessageHeader.HEADER_SIZE];
                var recv       = socket.Receive(headerData, headerData.Length, SocketFlags.None);
                if (recv == TgcSocketMessageHeader.HEADER_SIZE)
                {
                    var msgLength = BitConverter.ToInt32(headerData, 0);

                    //Recibir cuerpo del mensaje
                    var msgData = new byte[msgLength];
                    recv = socket.Receive(msgData, msgData.Length, SocketFlags.None);
                    if (recv == msgLength)
                    {
                        var recvMsg = new TgcSocketRecvMsg(msgData);
                        return(recvMsg);
                    }
                }
            }
            catch (Exception)
            {
                return(null);
            }

            return(null);
        }
コード例 #2
0
 public TgcSocketClientRecvMesg(TgcSocketRecvMsg msg, int playerId)
 {
     Msg      = msg;
     PlayerId = playerId;
 }