Пример #1
0
        void DataReceived(IAsyncResult ar)
        {
            // BeginReceive에서 추가적으로 넘어온 데이터를 AsyncObject 형식으로 변환한다.
            AsyncObject obj = (AsyncObject)ar.AsyncState;

            // 데이터 수신을 끝낸다.
            int received = obj.WorkingSocket.EndReceive(ar);

            // 받은 데이터가 없으면(연결끊어짐) 끝낸다.
            if (received <= 0)
            {
                obj.WorkingSocket.Close();
                return;
            }


            formMadeByRcv = true;
            GetChatForm(this, "ClientForm2");


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

            Control     ctrl = Control.FromHandle(this.formHandle);
            ClientForm2 clf2 = (ClientForm2)ctrl;

            clf2.AppendText(string.Format("관리자: {0}", text));


            obj.ClearBuffer();

            // 수신 대기
            obj.WorkingSocket.BeginReceive(obj.Buffer, 0, 4096, 0, DataReceived, obj);
        }
Пример #2
0
        void DataReceived(IAsyncResult ar)
        {
            // BeginReceive에서 추가적으로 넘어온 데이터를 AsyncObject 형식으로 변환한다.
            AsyncObject obj = (AsyncObject)ar.AsyncState;

            // 데이터 수신을 끝낸다.
            int received = obj.WorkingSocket.EndReceive(ar);

            if (received > 0)
            {
                string text = Encoding.UTF8.GetString(obj.Buffer);

                if (text.Contains("SignUpFail"))
                {
                    MessageBox.Show("이미 존재하는 아이디입니다.");
                    isOK = false;
                }

                else if (text.Contains("SignUpSuccess"))
                {
                    MessageBox.Show("사용 가능한 아이디입니다.");
                    isOK = true;
                }

                else
                {
                    MessageBox.Show("서버가 아이디를 인식하지 못했습니다.");
                }

                obj.ClearBuffer();

                // 수신 대기
                obj.WorkingSocket.BeginReceive(obj.Buffer, 0, 4096, 0, DataReceived, obj);
            }
            // 받은 데이터가 없으면(연결끊어짐) 끝낸다.
            else if (received <= 0)
            {
                obj.WorkingSocket.Close();
                return;
            }
        }
Пример #3
0
        void DataReceived(IAsyncResult ar)
        {
            // BeginReceive에서 추가적으로 넘어온 데이터를 AsyncObject 형식으로 변환한다.
            AsyncObject obj = (AsyncObject)ar.AsyncState;

            // 데이터 수신을 끝낸다.
            int received = obj.WorkingSocket.EndReceive(ar);

            if (received > 0)
            {
                string text = Encoding.UTF8.GetString(obj.Buffer);
                //Debug.WriteLine(text);
                text = text.Trim('\0');

                if (text.Contains("ProductList")) //상품 목록 출력
                {
                    text = text.Replace("ProductList", "");

                    string[] receivedString = text.Split('\x02');
                    string[] temp;

                    for (int i = 0; i < receivedString.Length - 1; i++)
                    {
                        temp = receivedString[i].Split('\x01');
                        ListViewItem lvitem = new ListViewItem(temp);
                        LvItemAppend(lvMenuList, lvitem);
                    }
                    LvSetColor(lvMenuList, Color.Red);

                    obj.ClearBuffer();

                    // 수신 대기
                    obj.WorkingSocket.BeginReceive(obj.Buffer, 0, 4096, 0, DataReceived, obj);
                }

                else if (text.Contains("OrderSuccessed"))
                {
                    OrderSuccessed();
                }

                else if (text.Contains("OrderFailed"))
                {
                    OrderFailed();
                }

                else //상품 이미지 출력
                {
                    ReceivedArray temp = new ReceivedArray(received);
                    temp.arr = (byte[])obj.Buffer.Clone();

                    byteList.Add(temp);

                    obj.ClearBuffer();

                    // 수신 대기
                    obj.WorkingSocket.BeginReceive(obj.Buffer, 0, 4096, 0, DataReceived, obj);
                }
            }
            // 받은 데이터가 없으면(연결끊어짐) 끝낸다.
            else if (received <= 0)
            {
                obj.WorkingSocket.Close();
                return;
            }
        }