public void socketListener()
        {
            if (mySocket != null)
            {
                while (true)
                {
                    int n = mySocket.Available;
                    if (n > 0)
                    {
                        byte[] bArr = new byte[n];
                        mySocket.Receive(bArr);
                        string pkg = Encoding.Default.GetString(bArr);

                        if (pkg.Contains(','))
                        {
                            string[] msg = pkg.Split(',');
                            packet = new PacketInfo(msg[0], msg[1], msg[2], msg[3], msg[4]);
                        }
                        string str = packet.getMessage(pkg);
                        if (str == "gamestart")
                        {
                            //timer1.Enabled = true;
                            //timer1.Start();
                            t.Start();
                        }
                        if (str == "lose")
                        {
                            t.Stop();
                            MessageBox.Show("당신이 이겼습니다.");
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
        void ReadProcess()
        {
            while (true)
            {
                int n = player.Available;
                if (n > 0)
                {
                    byte[] ba = new byte[n];
                    player.Receive(ba); //socket이름 player
                    string pkt = Encoding.Default.GetString(ba);
                    // 이부분 수정 필요----------------------------------------> 서버에서 받은 msg
                    // 이부분 수정 필요----------------------------게임 시작 시작 시, (1) 클->서버 "gamestart"
                    // 이부분 수정 필요----------------------------게임 시작 시작 시, (2) 서버->클 "gamestart/상대id/문제정답"
                    // 이부분 수정 필요----------------------------게임 중간, 클->서버 "false(또는 true)" ==> 해당 클이 winner인지
                    // 이부분 수정 필요-------게임 중간, 서버는 두 클의 isWinner가 true인거 하나라도 있으면
                    // 서버->클 "gameend/true(false)"-> 상대방isWinner인지 패킷 전송  / isWinner=true인 클에게 money추가
                    // 이부분 수정 필요-------게임 중간, 두 클 모두 isWinner=false면 "continue"
                    if (msg_room == null)
                    {
                        msg_room = pi.getRoom(pkt);
                    }
                    string msg = pi.getMessage(pkt);

                    if (msg.StartsWith("true") || msg.StartsWith("false"))     // 게임 도중인 경우
                    {
                        endGame(msg);
                    }
                    else
                    {
                        // gamestart받는 경우
                        string numb = pi.getNumber(pkt);
                        if (msg.StartsWith("gamestart"))
                        {
                            startGame(numb);
                        }
                        nextRound();
                    }
                }
            }
        }