Exemple #1
0
        public void ReceiveMessage(Connection conn, MessageTypes messageType, byte[] buff, int offset, int length)
        {
            switch (messageType)
            {
            case MessageTypes.MessageTypeNameToStringSidReply:
                messageVmNameToStringSidReply
                    = MessageVmNameToStringSidReply.CreateFromNetBytes(conn.receiveBuffer, 0);
                autoResetEvent.Set();
                break;

            default:
                throw new NotImplementedException();
            }
        }
Exemple #2
0
        public string SendMessageSidQuery(string accountName)
        {
            string stringSid = null;

            if (conn == null)
            {
                return(null);
            }
            uint sn = ++SeqNo;
            MessageNameToStringSidQuery msg = new MessageNameToStringSidQuery(sn, (uint)accountName.Length, accountName);
            int countBytesToSend            = msg.Serialize(conn.sendBuffer, 0);
            int countBytesSent = conn.Send(conn.sendBuffer, 0, countBytesToSend);

            if (countBytesSent != countBytesToSend)
            {
                Console.WriteLine("SendMessageSidQuery Err: attempt {0} sent {1}.", countBytesToSend, countBytesSent);
                return(null);
            }
            messageVmNameToStringSidReply = null;
            autoResetEvent.Reset();
            conn.BeginReceive();
            bool timedOut = !autoResetEvent.WaitOne(TIMEOUT_MILLISECS);

            if (timedOut)
            {
                return(null);
            }
            if (messageVmNameToStringSidReply.SeqNo != sn)
            {
                Console.WriteLine("qSid seqno mismatch: expected {0} obtained {1}", sn, messageVmNameToStringSidReply.SeqNo);
            }
            else
            {
                //Console.WriteLine("qSid {0}", messageVmNameToStringSidReply.SidString);
                stringSid = messageVmNameToStringSidReply.SidString;
            }

            return(stringSid);
        }