static void Main(string[] args)
{
// SSL server port
int port = 2222;
// If arguments are provided use the first one as a port number
if (args.Length > 0)
{
port = int.Parse(args[0]);
}
Console.WriteLine($"SSL server port: {port}");
Console.WriteLine();
// Create and prepare a new SSL server context using TLS protocol
// and pass the path for the server certificate.
var context = new SslContext(SslProtocols.Tls12,
new X509Certificate2(@"C:\Users\user\Downloads\server.pfx", "qwerty"));
// Create a new SSL server instance
var server = new SocketServer(context, IPAddress.Any, port);
// Start the server
Console.Write("Server starting...");
server.Start();
Console.WriteLine("Done!");
Console.WriteLine("Press Enter to stop the server or '!' to restart the server...");
// Perform text input
do
{
string line = Console.ReadLine();
if (string.IsNullOrEmpty(line))
{
break;
}
// Restart the server if a special symbol is inputed
if (line == "!")
{
Console.Write("Server restarting...");
server.Restart();
Console.WriteLine("Done!");
continue;
}
// Multicast admin message to all sessions
line = "(admin) " + line;
server.Multicast(line);
}while (true);
// Stop the server
Console.Write("Server stopping...");
server.Stop();
Console.WriteLine("Done!");
}