void WHOIAM(User user, string prms) { user.SendMessage("YOUARE " + user.name); }
void ClientThread(Object userObject) { User user = (User)userObject; Log.Write(String.Format("Подключен клиент: {0}", user.client.Client.RemoteEndPoint.ToString())); user.SendMessage("YOUARE " + user.name); string date = DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToLongTimeString(); user.SendMessage(String.Format("MSG Тебя приветствует сервер {0}! Время на сервере: {1}", name, date)); userList.SendMessageToAll("MSG " + user.name + " присоединился к чату."); userList.SendNamesToAll(); while (!stopped) { string mess = ""; try { mess = user.GetNextMessage(); } catch (SocketException) { if (stopped) { return; } Log.Write(String.Format("Ошибка получения сообщения! " + "Подключение с {0} будет разорвано!", user.name)); userList.Remove(user); userList.SendNamesToAll(); return; } catch (ObjectDisposedException) { if (stopped) { return; } Log.Write(String.Format("Ошибка получения сообщения! " + "Подключение с {0} было разорвано!", user.name)); userList.Remove(user); userList.SendNamesToAll(); return; } //Log.Write("получил: "+mess); int splitter = mess.IndexOf(' '); string comm, prms; if (splitter > 0) { comm = mess.Substring(0, splitter); prms = mess.Substring(splitter + 1); } else { comm = mess; prms = ""; } try { commandsMap[comm](user, prms); } catch (KeyNotFoundException) { user.SendError("001"); Log.Write("Неизвестная команда: " + mess); } catch (FormatException fe) { user.SendError("001"); Log.Write("Ожидалось: " + fe.Message + ". Получено: " + mess); } catch (IOException) { Log.Write("Ошибка отправки сообщения. Соединение будет разорвано."); userList.Remove(user); return; } } }