private void Connect_Btn_Click(object sender, RoutedEventArgs e)
        {
            if (client_Socket.Connected)
            {
                MessageBox.Show("이미 연결되어 있습니다", "경고", MessageBoxButton.OK, MessageBoxImage.Warning);
                return;
            }

            int Client_Port;

            if (!int.TryParse(TxtPort.Text, out Client_Port))
            {
                MessageBox.Show("포트번호를 다시 입력해 주십시오", "경고", MessageBoxButton.OK, MessageBoxImage.Warning);
                TxtPort.Focus();
                TxtPort.SelectAll();
                return;
            }

            try
            {
                client_Socket.Connect(Txt_IPadRess.Text, Client_Port);
            }
            catch
            {
                MessageBox.Show("연결에 실패하였습니다", "에러", MessageBoxButton.OK, MessageBoxImage.Error);
                Txt_history.Text += string.Format("\n서버와 연결실패");
                return;
            }

            Txt_history.Text += string.Format("\n서버와 연결되었습니다");
            Client_AsyncObject obj = new Client_AsyncObject(4096);

            obj.Working_socket = client_Socket;
            client_Socket.BeginReceive(obj.Buffer, 0, obj.BufferSize, 0, DataReceived, obj);
        }
        void DataReceived(IAsyncResult ar)
        {
            Client_AsyncObject obj = (Client_AsyncObject)ar.AsyncState;

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

            if (received <= 0)
            {
                obj.Working_socket.Close();
                return;
            }

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

            string[] Client_tokens = text.Split('\x01');
            string   ip            = Client_tokens[0];
            string   msg           = Client_tokens[1];

            Txt_history.Text += string.Format("\n[받음]{0} : {1}", ip, msg);
            obj.ClearBuffer();
            obj.Working_socket.BeginReceive(obj.Buffer, 0, 4096, 0, DataReceived, obj);
        }