예제 #1
0
        private void GiveFlop()
        {
            Card flop1 = _deck.GetRandomCard();
            Card flop2 = _deck.GetRandomCard();
            Card flop3 = _deck.GetRandomCard();

            BinaryFormatter formatter = new BinaryFormatter();

            // Выдаем первую карту flop'а
            using (MemoryStream memory = new MemoryStream())
            {
                // Количество реально записанных в мэйлслот байт
                uint   bytesWritten = 0;
                byte[] bytes        = new byte[400];

                formatter.Serialize(memory, flop1);
                bytes = memory.ToArray();
                // Выполняем запись последовательности байт в мэйлслот
                Mailslot.WriteFile(mailslotHandle, bytes, Convert.ToUInt32(bytes.Length), ref bytesWritten, 0);
                Console.WriteLine($"Flop1 is {flop1.ToString()}");
            }

            // Выдаем вторую карту flop'а
            using (MemoryStream memory = new MemoryStream())
            {
                uint   bytesWritten = 0;
                byte[] bytes        = new byte[400];
                formatter.Serialize(memory, flop2);
                bytes = memory.ToArray();
                Mailslot.WriteFile(mailslotHandle, bytes, Convert.ToUInt32(bytes.Length), ref bytesWritten, 0);
                Console.WriteLine($"Flop2 is {flop2.ToString()}");
            }

            // Выдаем третью карту flop'а
            using (MemoryStream memory = new MemoryStream())
            {
                uint   bytesWritten = 0;
                byte[] bytes        = new byte[400];
                formatter.Serialize(memory, flop3);
                bytes = memory.ToArray();
                Mailslot.WriteFile(mailslotHandle, bytes, Convert.ToUInt32(bytes.Length), ref bytesWritten, 0);
                Console.WriteLine($"Flop3 is {flop3.ToString()}");
            }

            cardsOnTable[0] = flop1;
            cardsOnTable[1] = flop2;
            cardsOnTable[2] = flop3;
        }
예제 #2
0
        // Отправляем несуществующую карту как признак окончания раздачи
        private void SendGameEnd()
        {
            // Количество реально записанных в мэйлслот байт
            uint bytesWritten = 0;

            Card endGame = new Card(CardSuit.Count, CardQuality.Count);

            BinaryFormatter formatter = new BinaryFormatter();

            using (MemoryStream memory = new MemoryStream())
            {
                byte[] bytes = new byte[400];
                // Выдаем пятую карту (river)
                formatter.Serialize(memory, endGame);
                bytes = memory.ToArray();
                // Выполняем запись последовательности байт в мэйлслот
                Mailslot.WriteFile(mailslotHandle, bytes, Convert.ToUInt32(bytes.Length), ref bytesWritten, 0);
            }
        }
예제 #3
0
        private void GiveTurn()
        {
            // Количество реально записанных в мэйлслот байт
            uint bytesWritten = 0;

            Card turn = _deck.GetRandomCard();

            BinaryFormatter formatter = new BinaryFormatter();

            using (MemoryStream memory = new MemoryStream())
            {
                byte[] bytes = new byte[400];
                // Выдаем червертую карту (turn)
                formatter.Serialize(memory, turn);
                bytes = memory.ToArray();
                // Выполняем запись последовательности байт в мэйлслот
                Mailslot.WriteFile(mailslotHandle, bytes, Convert.ToUInt32(bytes.Length), ref bytesWritten, 0);
                Console.WriteLine($"Turn is {turn.ToString()}");
            }

            cardsOnTable[3] = turn;
        }
예제 #4
0
 private void ConnectMailslot()
 {
     try
     {
         // Подключаемся для выполнения широковещательной передачи
         mailslotHandle = Mailslot.CreateFile(mailslotName,
                                              Types.EFileAccess.GenericWrite, Types.EFileShare.Write, 0, Types.ECreationDisposition.CreateAlways, 0, 0);
         if (mailslotHandle != -1)
         {
             mailslotConnected = true;
             Console.WriteLine("Соединение с мейлслотом прошло успешно");
         }
         else
         {
             Console.WriteLine("Не удалось подключиться к мейлслоту");
         }
     }
     catch
     {
         Console.WriteLine("Не удалось подключиться к мейлслоту");
     }
 }