コード例 #1
0
        void ChatDataReceived(IAsyncResult ar)
        {
            try
            {
                AsyncObject obj = (AsyncObject)ar.AsyncState;

                int received = obj.WorkingSocket.EndReceive(ar);

                if (received <= 0)
                {
                    obj.WorkingSocket.Close();

                    return;
                }
                // 텍스트로 변환한다.

                string text = Encoding.UTF8.GetString(obj.Buffer);

                formMadeByRcv = true;
                GetChatForm(this, obj.WorkingNum.ToString() + "번 자리", obj.WorkingNum, text);


                // 데이터를 받은 후엔 다시 버퍼를 비워주고 같은 방법으로 수신을 대기한다.
                obj.ClearBuffer();

                // 수신 대기
                obj.WorkingSocket.BeginReceive(obj.Buffer, 0, 4096, 0, ChatDataReceived, obj);
            }
            catch
            {
                AsyncObject objtemp = (AsyncObject)ar.AsyncState;
                foreach (Control x in splitContainer1.Panel1.Controls)
                {
                    if (x.GetType() == typeof(System.Windows.Forms.PictureBox))
                    {
                        PictureBox a = (PictureBox)x;
                        if (a.Name.Substring(10) == objtemp.WorkingNum.ToString()) //pictureBox 문자열을 제거하고 뒤의 숫자만 비교
                        {
                            a.BackColor = Color.Black;
                            foreach (ClientStatus cs in connectedChatClients)
                            {
                                if (cs.myNum.Equals(objtemp.WorkingNum))
                                {
                                    connectedChatClients.Remove(cs);
                                    break;
                                }
                            }
                        }
                    }
                }
                AnySound.PlaySoundClientLogout(Convert.ToString(objtemp.WorkingNum));
            }
        }
コード例 #2
0
        void OrderDataReceived(IAsyncResult ar)
        {
            try
            {
                AsyncObject obj = (AsyncObject)ar.AsyncState;

                int received = obj.WorkingSocket.EndReceive(ar);

                if (received <= 0)
                {
                    obj.WorkingSocket.Close();

                    return;
                }

                string text      = Encoding.UTF8.GetString(obj.Buffer);
                string strToSend = "ProductList";

                if (text.Contains("All") == true)
                {
                    string          connstr = "Server=127.0.0.1;Port=3306;Database=31337;Uid=root;Pwd=amen95";
                    MySqlConnection conn    = new MySqlConnection(connstr);
                    MySqlCommand    cmd     = conn.CreateCommand();
                    string          sql     = "Select * from product";
                    cmd.CommandText = sql;
                    try
                    {
                        conn.Open();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                    MySqlDataReader reader = cmd.ExecuteReader();
                    while (reader.Read())
                    {
                        String[] arr = new String[3];
                        arr[0] = reader["Name"].ToString();
                        arr[1] = reader["Price"].ToString();
                        arr[2] = reader["Stock"].ToString();

                        strToSend = strToSend + arr[0] + '\x01' + arr[1] + '\x01' + arr[2] + '\x02';
                    }
                    byte[] bDts = Encoding.UTF8.GetBytes(strToSend);
                    obj.WorkingSocket.Send(bDts);

                    conn.Dispose();
                }

                else if (text.Contains("Ramen") == true)
                {
                    string          connstr = "Server=127.0.0.1;Port=3306;Database=31337;Uid=root;Pwd=amen95";
                    MySqlConnection conn    = new MySqlConnection(connstr);
                    MySqlCommand    cmd     = conn.CreateCommand();
                    string          sql     = "Select * from product Where Sort = 'Ramen'";
                    cmd.CommandText = sql;
                    try
                    {
                        conn.Open();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                    MySqlDataReader reader = cmd.ExecuteReader();
                    while (reader.Read())
                    {
                        String[] arr = new String[3];
                        arr[0] = reader["Name"].ToString();
                        arr[1] = reader["Price"].ToString();
                        arr[2] = reader["Stock"].ToString();

                        strToSend = strToSend + arr[0] + '\x01' + arr[1] + '\x01' + arr[2] + '\x02';
                    }
                    byte[] bDts = Encoding.UTF8.GetBytes(strToSend);
                    obj.WorkingSocket.Send(bDts);

                    conn.Dispose();
                }

                else if (text.Contains("Snack") == true)
                {
                    string          connstr = "Server=127.0.0.1;Port=3306;Database=31337;Uid=root;Pwd=amen95";
                    MySqlConnection conn    = new MySqlConnection(connstr);
                    MySqlCommand    cmd     = conn.CreateCommand();
                    string          sql     = "Select * from product Where Sort = 'Snack'";
                    cmd.CommandText = sql;
                    try
                    {
                        conn.Open();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                    MySqlDataReader reader = cmd.ExecuteReader();
                    while (reader.Read())
                    {
                        String[] arr = new String[3];
                        arr[0] = reader["Name"].ToString();
                        arr[1] = reader["Price"].ToString();
                        arr[2] = reader["Stock"].ToString();

                        strToSend = strToSend + arr[0] + '\x01' + arr[1] + '\x01' + arr[2] + '\x02';
                    }
                    byte[] bDts = Encoding.UTF8.GetBytes(strToSend);
                    obj.WorkingSocket.Send(bDts);

                    conn.Dispose();
                }

                else if (text.Contains("Beverage") == true)
                {
                    string          connstr = "Server=127.0.0.1;Port=3306;Database=31337;Uid=root;Pwd=amen95";
                    MySqlConnection conn    = new MySqlConnection(connstr);
                    MySqlCommand    cmd     = conn.CreateCommand();
                    string          sql     = "Select * from product Where Sort = 'Beverage'";
                    cmd.CommandText = sql;
                    try
                    {
                        conn.Open();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                    MySqlDataReader reader = cmd.ExecuteReader();
                    while (reader.Read())
                    {
                        String[] arr = new String[3];
                        arr[0] = reader["Name"].ToString();
                        arr[1] = reader["Price"].ToString();
                        arr[2] = reader["Stock"].ToString();

                        strToSend = strToSend + arr[0] + '\x01' + arr[1] + '\x01' + arr[2] + '\x02';
                    }
                    byte[] bDts = Encoding.UTF8.GetBytes(strToSend);
                    obj.WorkingSocket.Send(bDts);

                    conn.Dispose();
                }

                else if (text.Contains("ETC") == true)
                {
                    string          connstr = "Server=127.0.0.1;Port=3306;Database=31337;Uid=root;Pwd=amen95";
                    MySqlConnection conn    = new MySqlConnection(connstr);
                    MySqlCommand    cmd     = conn.CreateCommand();
                    string          sql     = "Select * from product Where Sort = 'ETC'";
                    cmd.CommandText = sql;
                    try
                    {
                        conn.Open();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                    MySqlDataReader reader = cmd.ExecuteReader();
                    while (reader.Read())
                    {
                        String[] arr = new String[3];
                        arr[0] = reader["Name"].ToString();
                        arr[1] = reader["Price"].ToString();
                        arr[2] = reader["Stock"].ToString();

                        strToSend = strToSend + arr[0] + '\x01' + arr[1] + '\x01' + arr[2] + '\x02';
                    }
                    byte[] bDts = Encoding.UTF8.GetBytes(strToSend);
                    obj.WorkingSocket.Send(bDts);

                    conn.Dispose();
                }

                else if (text.Contains("ProductImage") == true)
                {
                    string receivedString = text.Split('\x01')[1];
                    receivedString = receivedString.Trim('\0'); //소켓 전송시 문자열 뒤에 \0 문자가 꽉 차 있음. 그거를 제거.

                    string arr = "";

                    string          connstr = "Server=127.0.0.1;Port=3306;Database=31337;Uid=root;Pwd=amen95;CharSet=utf8;";
                    MySqlConnection conn    = new MySqlConnection(connstr);
                    MySqlCommand    cmd     = conn.CreateCommand();

                    string sql = "Select * from product Where Name = '" + receivedString + "'";
                    cmd.CommandText = sql;

                    try
                    {
                        conn.Open();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                    MySqlDataReader reader = cmd.ExecuteReader();
                    while (reader.Read())
                    {
                        arr = reader["Image"].ToString();
                    }

                    byte[] bDts = ImageToByteArray(Image.FromFile(@"C:\31337\image\" + arr));
                    obj.WorkingSocket.Send(bDts);

                    conn.Dispose();
                }

                else if (text.Contains("Order") == true)
                {
                    text = text.Replace("Order" + '\x01', "");
                    text = text.Trim('\0');
                    int i = Convert.ToInt32(text.Split('\x01')[0].ToString());
                    text = text.Replace(i.ToString() + '\x01', "");
                    string[] receivedString = text.Split('\x02');

                    string temp = "OrderSuccessed";
                    byte[] bDts = Encoding.UTF8.GetBytes(temp);
                    SetOrderList(lvOrderList, i, receivedString);

                    if (OrderBool == true)
                    {
                        obj.WorkingSocket.Send(bDts);
                    }
                    else if (OrderBool == false)
                    {
                        temp = "OrderFailed";
                        bDts = Encoding.UTF8.GetBytes(temp);
                        obj.WorkingSocket.Send(bDts);
                    }
                }

                // 데이터를 받은 후엔 다시 버퍼를 비워주고 같은 방법으로 수신을 대기한다.
                obj.ClearBuffer();

                // 수신 대기
                obj.WorkingSocket.BeginReceive(obj.Buffer, 0, 4096, 0, OrderDataReceived, obj);
            }
            catch (Exception e)
            {
            }
        }
コード例 #3
0
        void MemberDataReceived(IAsyncResult ar)
        {
            try
            {
                AsyncObject obj = (AsyncObject)ar.AsyncState;

                int received = obj.WorkingSocket.EndReceive(ar);

                if (received <= 0)
                {
                    obj.WorkingSocket.Close();

                    return;
                }

                string text = Encoding.UTF8.GetString(obj.Buffer);

                if (text.Contains("MemberIDCheck") == true)
                {
                    bool isOK = true;
                    text = text.Replace("MemberIDCheck" + '\x01', "");
                    text = text.Trim('\0');

                    string          connstr = "Server=127.0.0.1;Port=3306;Database=31337;Uid=root;Pwd=amen95;CharSet=utf8;";
                    MySqlConnection conn    = new MySqlConnection(connstr);
                    MySqlCommand    cmd     = conn.CreateCommand();
                    string          sql     = "Select * from member";
                    cmd.CommandText = sql;
                    try
                    {
                        conn.Open();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                    MySqlDataReader reader = cmd.ExecuteReader();
                    while (reader.Read())
                    {
                        String arr = reader["ID"].ToString();
                        if (arr.Equals(text))
                        {
                            isOK = false;
                        }
                    }

                    if (isOK)
                    {
                        byte[] bDts = Encoding.UTF8.GetBytes("SignUpSuccess");
                        obj.WorkingSocket.Send(bDts);
                    }
                    else
                    {
                        byte[] bDts = Encoding.UTF8.GetBytes("SignUpFail");
                        obj.WorkingSocket.Send(bDts);
                    }
                    conn.Dispose();
                }

                else if (text.Contains("SetToMember") == true)
                {
                    text = text.Replace("SetToMember" + '\x02', "");
                    text = text.Trim('\0');
                    String[] arr = text.Split('\x01');

                    string          connstr = "Server=127.0.0.1;Port=3306;Database=31337;Uid=root;Pwd=amen95;CharSet=utf8;";
                    MySqlConnection conn    = new MySqlConnection(connstr);
                    MySqlCommand    cmd     = conn.CreateCommand();
                    string          sql     = "Insert Into member Values('" + arr[0] + "', '" + arr[1] + "', '" +
                                              arr[2] + "', '" + arr[3] + "')";
                    cmd.CommandText = sql;
                    try
                    {
                        conn.Open();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                    cmd.ExecuteNonQuery();
                    conn.Dispose();
                }

                obj.ClearBuffer();

                // 수신 대기
                obj.WorkingSocket.BeginReceive(obj.Buffer, 0, 4096, 0, MemberDataReceived, obj);
            }
            catch (Exception e)
            {
            }
        }