Beispiel #1
0
        private void OneCard_Load(object sender, EventArgs e)
        {
            context = BufferedGraphicsManager.Current;                                                             // 참조
            context.MaximumBuffer = new Size(MAXWIDTH, MAXHEIGHT);                                                 // 버퍼 크기 설정
            graphics = context.Allocate(CreateGraphics(), new Rectangle(0, distanceFromTop, MAXWIDTH, MAXHEIGHT)); // 버퍼 그래픽스 객체 생성 및 참조
            graphics.Graphics.Clear(Color.Gray);                                                                   // 버퍼 지우기

            trumpCard = Properties.Resources.TrumpCard;

            MainForm = (CardGameLand)Owner;
            if (Master)
            {
                tcpListener = MainForm.tcpListener;
                clients     = new Dictionary <string, BinaryWriter>();

                acceptThread = new Thread(new ThreadStart(AcceptClient));
                acceptThread.IsBackground = true;
                acceptThread.Start();

                MainForm.tcpClient = new TcpClient(myIP, 4545);

                if (MainForm.tcpClient.Connected)
                {
                    ns       = MainForm.tcpClient.GetStream();
                    clientbw = new BinaryWriter(ns);
                    clientbr = new BinaryReader(ns);
                    clientbw.Write(NickName);
                    int    dump0 = clientbr.ReadInt32();
                    string dump1 = clientbr.ReadString();
                    int    dump2 = clientbr.ReadInt32();
                    int    dump3 = clientbr.ReadInt32();
                }
                this.buttonStart.Enabled = true;
            }
            else
            {
                clientbw = MainForm.bw;
                clientbr = MainForm.br;
            }
            clientReceiver       = new ClientReceiver(clientbr, clientbw, textBoxChattingList, labelCurrentPersonCount, this, mycards, players, NickName);
            clientReceiverThread = new Thread(new ThreadStart(clientReceiver.process));
            clientReceiverThread.IsBackground = true;
            clientReceiverThread.Start();

            buttonOneCard.Location = new Point(-100, 0);
        }
Beispiel #2
0
        //종료
        private void OneCard_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (clientReceiverThread != null)
            {
                clientReceiverThread.Abort();
                clientReceiverThread = null;
            }
            if (clientReceiver != null)
            {
                clientReceiver = null;
            }
            if (clientbr != null)
            {
                clientbr.Close();
                clientbr = null;
            }
            if (clientbw != null)
            {
                clientbw.Close();
                clientbw = null;
            }
            if (ns != null)
            {
                ns.Close();
                ns = null;
            }
            if (MainForm.tcpClient != null)
            {
                MainForm.tcpClient.Close();
                MainForm.tcpClient = null;
            }
            if (MainForm.Game != null)
            {
                MainForm.Game.Dispose();
                MainForm.Game = null;
            }
            if (MainForm.createroom != null)
            {
                MainForm.createroom.Dispose();
                MainForm.createroom = null;
            }
            _shouldStop = true;

            this.Close();
            this.Dispose();
        }