示例#1
0
文件: Client.cs 项目: stBurning/Chat
        private void OnUserList(string command, string data)
        {
            var us = data.Split(',');

            isConnected = true;
            foreach (var cl in us)
            {
                if (cl == username)
                {
                    ClientLog.Invoke("[Server]: Имя пользователя занято");
                    isConnected = false;
                    return;
                }
            }
            ClientLog.Invoke("[Server]: Список подключенных клиентов:");
            if (us.Length == 0 || (us.Length == 1 && us[0].Length == 0))
            {
                ClientLog?.Invoke("[Server]: Вы единственный пользователь на сервере");
            }
            foreach (var cl in us)
            {
                if (cl.Length != 0)
                {
                    ClientLog.Invoke(">" + cl);
                }
            }
            ClientLog.Invoke("-----------------------------");
        }
示例#2
0
文件: Client.cs 项目: stBurning/Chat
 private void OnMessage(string command, string data)
 {
     if (isConnected)
     {
         ClientLog.Invoke(String.Format("{0}", data));
     }
 }
示例#3
0
文件: Client.cs 项目: stBurning/Chat
        public void Start()
        {
            isConnected = false;
            try {
                ClientLog.Invoke(String.Format("[Server]: Подключение к {0}", this.serverHost));
                cSocket = new Socket(SocketType.Stream, ProtocolType.Tcp);
                cSocket.Connect(this.serverHost, port);
                net = new NetMessaging(cSocket);

                net.LoginCmdReceived    += OnLogin;
                net.UserListCmdReceived += OnUserList;
                net.StartCmdReceived    += OnStart;
                net.MessageCmdReceived  += OnMessage;

                communicate = new Thread(() => {
                    try {
                        net.Communicate();
                    } catch (Exception) {
                        ClientLog.Invoke("[Server]: Не удалось получить данные. Завершение соединения...");
                    }
                });
                communicate.Start();
            } catch (Exception) {
                ClientLog.Invoke("[Server]: Что-то пошло не так... :(");
            }
        }
示例#4
0
文件: Client.cs 项目: stBurning/Chat
 private void OnStart(string command, string data)
 {
     if (isConnected)
     {
         ClientLog.Invoke("[Server]: Вы можете писать сообщения!");
         GoMessaging();
     }
 }
示例#5
0
 internal void HandleClientLog(object sender, ClientLoggerEventArgs args)
 {
     ClientLog?.Invoke(sender, args);
 }
示例#6
0
 protected virtual void OnClientLog(object sender, LogEventArgs e)
 {
     ClientLog?.Invoke(sender, e);
 }