示例#1
0
 private void User_OnMessageStatusReceivedCallback(ChatLib.Message message)
 {
     if (message.StatusType == StatusType.Connected)
     {
         print(message.Name + " Connected", Log);
     }
     else if (message.StatusType == StatusType.Disconnected)
     {
         print(message.Name + " Disconnected", Log);
     }
     else if (message.StatusType == StatusType.Disconnecting)
     {
         if (message.Content != null || message.Content != "")
         {
             print(message.Content, Log, Color.Red);
         }
         print(message.Name + " Disconnected", Log);
         user.Close();
         tcpClient.Close();
         user = null;
         tcpClient.Dispose();
         ChangeConnectionInputState(true);
     }
     else if (message.StatusType == StatusType.ErrorDisconnect)
     {
         print(message.Content, Log);
         user.Close();
         tcpClient.Close();
         user = null;
         tcpClient.Dispose();
         ChangeConnectionInputState(true);
     }
 }
示例#2
0
        private void Mainclose()
        {
            /**
             * 关闭所有
             * 1. isLogin = false
             * 2. myListener关闭
             * 3. textbox清空
             * 4. listbox清空
             * 5. 向Server发送close操作码
             * 6. 登录、注销按钮切换
             *
             */

            isLogin = false;
            myListener.Stop();
            textBox1.Text = "";
            textBox2.Text = "";
            listBox1.Items.Clear();
            try
            {
                Server.bw.Write("close");
                Server.bw.Flush();
                Server.Close();
                Server = null;
            }
            catch (Exception e) { }
            button2.Enabled = true;
            button3.Enabled = false;
        }
示例#3
0
        static void Main(string[] args)
        {
            User user;

            while (true) //서버에 연결될때까지 연결시도
            {
                try
                {
                    TcpClient client = new TcpClient("127.0.0.1", 15000);
                    user = new User(client);
                    break;
                }
                catch //서버가 닫혀있는 경우의 예외처리
                {
                    Console.WriteLine("서버가 응답하지 않음...");
                    Thread.Sleep(5000);
                }
            }
            //ID 입력 및 송신
            Console.Write("ID 입력 : ");
            user.id = Console.ReadLine();
            user.SendData(user.id);
            Task recv_task = new Task(new Action(user.RecvData));

            recv_task.Start();
            for (; ;)
            {
                string chat        = Console.ReadLine();
                bool   isConnected = user.SendData(chat);
                if (!isConnected)
                {
                    Console.WriteLine("서버연결 끊김");
                    break;
                }
            }
            user.Close();
        }