Example #1
0
        private void ConnectDone()
        {
            PacketMaker maker = new PacketMaker();

            maker.SetMsgLength(Encoding.UTF8.GetByteCount(textBox1.Text));
            maker.SetCommand((int)COMMAND.SET_USER_ID);
            maker.SetStringData(textBox1.Text);

            userID = textBox1.Text;

            sender1.SendPacket(COMMAND.SET_USER_ID, maker);
        }
Example #2
0
        private void CreateRoom_Click(object sender, EventArgs e)
        {
            PacketMaker maker = new PacketMaker();

            maker.SetMsgLength(Encoding.UTF8.GetByteCount(CreateRoomTextBox.Text));
            maker.SetCommand((int)COMMAND.CREATE_ROOM);
            maker.SetStringData(CreateRoomTextBox.Text);

            sender1.SendPacket(COMMAND.CREATE_ROOM, maker);

            CreateRoomTextBox.Text = string.Empty;
        }
Example #3
0
        private void ExitRoomButton_Click(object sender, EventArgs e)
        {
            PacketMaker maker = new PacketMaker();

            maker.SetMsgLength(BitConverter.GetBytes(1).Length);
            maker.SetCommand((int)COMMAND.EXIT_ROOM);
            maker.SetIntData(1);
            //maker.SetStringData(SendTextBox.Text);

            sender1.SendPacket(COMMAND.EXIT_ROOM, maker);

            SendTextBox.Text = string.Empty;
        }
Example #4
0
        private void JoinRoomButton_Click(object sender, EventArgs e)
        {
            PacketMaker maker = new PacketMaker();

            maker.SetMsgLength(Encoding.UTF8.GetByteCount(JoinRoomTextBox.Text));
            maker.SetCommand((int)COMMAND.JOIN_ROOM);
            maker.SetStringData(JoinRoomTextBox.Text);
            //maker.SetStringData(SendTextBox.Text);

            sender1.SendPacket(COMMAND.JOIN_ROOM, maker);

            JoinRoomTextBox.Text = string.Empty;
        }
Example #5
0
        private void SendButton_Click(object sender, EventArgs e)
        {
            StringBuilder builder = new StringBuilder();

            builder.Append(ReceiveTextBox.Text);
            builder.Append(userID);
            builder.Append(" : ");
            builder.Append(SendTextBox.Text);
            builder.Append(Environment.NewLine);

            ReceiveTextBox.Text = builder.ToString();

            PacketMaker maker = new PacketMaker();

            maker.SetMsgLength(Encoding.UTF8.GetByteCount(SendTextBox.Text));
            maker.SetCommand((int)COMMAND.SEND_CHAT_MSG);
            maker.SetStringData(SendTextBox.Text);

            sender1.SendPacket(COMMAND.SEND_CHAT_MSG, maker);

            SendTextBox.Text = string.Empty;
        }
Example #6
0
        // 패킷 수신
        public void ReceivePacket(COMMAND command)
        {
            switch (command)
            {
            case COMMAND.SET_USER_ID_DONE:
            {
                int    check = BitConverter.ToInt32(receiveBuffers, (Defines.HEADERSIZE + Defines.COMMAND));
                string msg   = Encoding.UTF8.GetString(receiveBuffers, (Defines.HEADERSIZE + Defines.COMMAND) + 4, totalByteLength);

                if (check == 1)
                {
                    //MessageBox.Show(msg + " 아이디로 접속되었습니다.");
                    userID = msg;
                    settingIDCallback();

                    // 방 리스트를 가져오자
                    PacketMaker maker = new PacketMaker();
                    maker.SetMsgLength(BitConverter.GetBytes(1).Length);
                    maker.SetCommand((int)COMMAND.GET_ROOM);
                    maker.SetIntData(1);

                    SendPacket(COMMAND.GET_ROOM, maker);
                }
                else
                {
                    MessageBox.Show("동일한 아이디가 존재합니다");

                    // 디스커넥트를 서버에 보내자
                    // 나중에 패킷 메세지도 필요하면 그 때 보내보자
                    PacketMaker maker = new PacketMaker();
                    maker.SetMsgLength(BitConverter.GetBytes(1).Length);
                    maker.SetCommand((int)COMMAND.SERVER_DISCONNECTED);
                    maker.SetIntData(1);

                    SendPacket(COMMAND.SERVER_DISCONNECTED, maker);

                    //socket.Disconnect(false);
                    //SocketAsyncEventArgs dis = new SocketAsyncEventArgs();
                    //dis.Completed += new EventHandler<SocketAsyncEventArgs>(Dis);
                    //socket.DisconnectAsync(dis);
                }

                break;
            }

            case COMMAND.RECEIVE_CHAT_MSG:
            {
                string msg = Encoding.UTF8.GetString(receiveBuffers, (Defines.HEADERSIZE + Defines.COMMAND), totalByteLength);

                receiveMessageCallback(msg);

                break;
            }

            case COMMAND.GET_ROOM_DONE:
            {
                string msg = Encoding.UTF8.GetString(receiveBuffers, (Defines.HEADERSIZE + Defines.COMMAND), totalByteLength);

                settingRoomCallback(msg);

                break;
            }

            case COMMAND.CREATE_ROOM_DONE:
            {
                string msg = Encoding.UTF8.GetString(receiveBuffers, (Defines.HEADERSIZE + Defines.COMMAND), totalByteLength);

                createRoomCallback(msg);

                break;
            }

            case COMMAND.JOIN_ROOM_DONE:
            {
                string msg = Encoding.UTF8.GetString(receiveBuffers, (Defines.HEADERSIZE + Defines.COMMAND), totalByteLength);

                createRoomCallback(msg);

                break;
            }

            case COMMAND.EXIT_ROOM_DONE:
            {
                // 방 리스트를 가져오자
                PacketMaker maker = new PacketMaker();
                maker.SetMsgLength(BitConverter.GetBytes(1).Length);
                maker.SetCommand((int)COMMAND.GET_ROOM);
                maker.SetIntData(1);

                SendPacket(COMMAND.GET_ROOM, maker);

                // 방 로비 화면으로 넘겨주자
                settingIDCallback();

                break;
            }
            }
        }