static void Main(string[] args) { BetterConsole.WriteLog("Starting SpChat server..."); var server = Server.GetServer(); server.Start(Port); }
public Client(TcpClient clientSocket) { _clientSocket = clientSocket; var sslStream = new SslStream(clientSocket.GetStream(), false); sslStream.AuthenticateAsServer(Server.GetServer().Certificate, false, SslProtocols.Tls, true); Stream = new BinaryStream(sslStream); BetterConsole.WriteLog("Connection secured."); StartClientThread(); }
private void ClientThread() { while (_clientSocket.Connected) { var message = string.Empty; try { message = Stream.Reader.ReadString(); } catch (Exception) { break; } if (message.StartsWith("/")) { ProcessCommand(message); continue; } if (!Authenticated) { DisplayString("You are not authenticated to use the chat. Please login first using '/login [username] [password]'"); continue; } var chatMessage = new ChatMessage { FromUser = User.Username, ToUser = "******", Message = message, Time = DateTime.Now }; Server.GetServer().BroadcastChatMessage(chatMessage); Database.GetDatabase().ChatMessages.Add(chatMessage); } Server.GetServer().RemoveClient(this); if (Authenticated) { Server.GetServer().BroadcastMessage($"{User.Username} has left the chat."); } }