Here are the examples of the csharp api NDesk.Options.OptionSet.WriteOptionDescriptions(System.IO.TextWriter) taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
67 Examples
19
Source : Program.cs
with MIT License
from atthacks
with MIT License
from atthacks
static void ShowHelp(OptionSet p)
{
Console.WriteLine("Usage: Windows-Privescker.exe [OPTIONS]+ <VALUE>");
Console.WriteLine();
Console.WriteLine("Example: Privescker.exe -p");
Console.WriteLine("Example: Privescker.exe -u http://10.10.14.12:8000/enum-tools.zip -o \"c:\\users\\public\"");
Console.WriteLine();
Console.WriteLine("Options:");
p.WriteOptionDescriptions(Console.Out);
}
19
Source : Program.cs
with MIT License
from atthacks
with MIT License
from atthacks
static void ShowHelp(OptionSet p)
{
Console.WriteLine();
Console.WriteLine("Example: RunAsUser.exe -u <username> -p <preplacedword> -f <file> -a <arguments>");
Console.WriteLine(@"Example: RunAsUser.exe -u administrator -p MySecurePreplacedword1 -f c:\users\public\nc.exe -a '10.10.14.10 443 -e cmd.exe'");
Console.WriteLine();
Console.WriteLine("If no options are preplaceded then you will need to have input your options in a wizard type approach");
Console.WriteLine();
Console.WriteLine("Options:");
p.WriteOptionDescriptions(Console.Out);
}
19
Source : Program.cs
with BSD 3-Clause "New" or "Revised" License
from b4rtik
with BSD 3-Clause "New" or "Revised" License
from b4rtik
static void ShowHelp(OptionSet p)
{
Console.WriteLine("usage: SharpLoadImage -a [path to replacedembly] -i [path to image source] -o [path to output file]");
Console.WriteLine();
Console.WriteLine("Options:");
p.WriteOptionDescriptions(Console.Out);
}
19
Source : Program.cs
with MIT License
from chronoxor
with MIT License
from chronoxor
static void Main(string[] args)
{
bool help = false;
string address = "127.0.0.1";
int port = 2222;
int threads = Environment.ProcessorCount;
int clients = 100;
int messages = 1000;
int size = 32;
int seconds = 10;
var options = new OptionSet()
{
{ "h|?|help", v => help = v != null },
{ "a|address=", v => address = v },
{ "p|port=", v => port = int.Parse(v) },
{ "t|threads=", v => threads = int.Parse(v) },
{ "c|clients=", v => clients = int.Parse(v) },
{ "m|messages=", v => messages = int.Parse(v) },
{ "s|size=", v => size = int.Parse(v) },
{ "z|seconds=", v => seconds = int.Parse(v) }
};
try
{
options.Parse(args);
}
catch (OptionException e)
{
Console.Write("Command line error: ");
Console.WriteLine(e.Message);
Console.WriteLine("Try `--help' to get usage information.");
return;
}
if (help)
{
Console.WriteLine("Usage:");
options.WriteOptionDescriptions(Console.Out);
return;
}
Console.WriteLine($"Server address: {address}");
Console.WriteLine($"Server port: {port}");
Console.WriteLine($"Working threads: {threads}");
Console.WriteLine($"Working clients: {clients}");
Console.WriteLine($"Working messages: {messages}");
Console.WriteLine($"Message size: {size}");
Console.WriteLine($"Seconds to benchmarking: {seconds}");
Console.WriteLine();
// Prepare a message to send
MessageToSend = new byte[size];
// Create a new service
var service = new Service(threads);
// Start the service
Console.Write("Service starting...");
service.Start();
Console.WriteLine("Done!");
// Create and prepare a new SSL client context
var context = new SslContext(SslMethod.TLSV12);
context.SetDefaultVerifyPaths();
context.SetRootCerts();
context.SetVerifyMode(SslVerifyMode.VerifyPeer | SslVerifyMode.VerifyFailIfNoPeerCert);
context.LoadVerifyFile("ca.pem");
// Create echo clients
var echoClients = new List<EchoClient>();
for (int i = 0; i < clients; ++i)
{
var client = new EchoClient(service, context, address, port, messages);
// client.SetupNoDelay(true);
echoClients.Add(client);
}
TimestampStart = DateTime.UtcNow;
// Connect clients
Console.Write("Clients connecting...");
foreach (var client in echoClients)
client.ConnectAsync();
Console.WriteLine("Done!");
foreach (var client in echoClients)
while (!client.IsHandshaked)
Thread.Yield();
Console.WriteLine("All clients connected!");
// Wait for benchmarking
Console.Write("Benchmarking...");
Thread.Sleep(seconds * 1000);
Console.WriteLine("Done!");
// Disconnect clients
Console.Write("Clients disconnecting...");
foreach (var client in echoClients)
client.DisconnectAsync();
Console.WriteLine("Done!");
foreach (var client in echoClients)
while (client.IsConnected)
Thread.Yield();
Console.WriteLine("All clients disconnected!");
// Stop the service
Console.Write("Service stopping...");
service.Stop();
Console.WriteLine("Done!");
Console.WriteLine();
Console.WriteLine($"Errors: {TotalErrors}");
Console.WriteLine();
TotalMessages = TotalBytes / size;
Console.WriteLine($"Total time: {Service.GenerateTimePeriod((TimestampStop - TimestampStart).TotalMilliseconds)}");
Console.WriteLine($"Total data: {Service.GenerateDataSize(TotalBytes)}");
Console.WriteLine($"Total messages: {TotalMessages}");
Console.WriteLine($"Data throughput: {Service.GenerateDataSize((long)(TotalBytes / (TimestampStop - TimestampStart).TotalSeconds))}/s");
if (TotalMessages > 0)
{
Console.WriteLine($"Message latency: {Service.GenerateTimePeriod((TimestampStop - TimestampStart).TotalMilliseconds / TotalMessages)}");
Console.WriteLine($"Message throughput: {(long)(TotalMessages / (TimestampStop - TimestampStart).TotalSeconds)} msg/s");
}
}
19
Source : Program.cs
with MIT License
from chronoxor
with MIT License
from chronoxor
static void Main(string[] args)
{
bool help = false;
string address = "127.0.0.1";
int port = 1111;
int threads = Environment.ProcessorCount;
int clients = 100;
int messages = 1000;
int size = 32;
int seconds = 10;
var options = new OptionSet()
{
{ "h|?|help", v => help = v != null },
{ "a|address=", v => address = v },
{ "p|port=", v => port = int.Parse(v) },
{ "t|threads=", v => threads = int.Parse(v) },
{ "c|clients=", v => clients = int.Parse(v) },
{ "m|messages=", v => messages = int.Parse(v) },
{ "s|size=", v => size = int.Parse(v) },
{ "z|seconds=", v => seconds = int.Parse(v) }
};
try
{
options.Parse(args);
}
catch (OptionException e)
{
Console.Write("Command line error: ");
Console.WriteLine(e.Message);
Console.WriteLine("Try `--help' to get usage information.");
return;
}
if (help)
{
Console.WriteLine("Usage:");
options.WriteOptionDescriptions(Console.Out);
return;
}
Console.WriteLine($"Server address: {address}");
Console.WriteLine($"Server port: {port}");
Console.WriteLine($"Working threads: {threads}");
Console.WriteLine($"Working clients: {clients}");
Console.WriteLine($"Working messages: {messages}");
Console.WriteLine($"Message size: {size}");
Console.WriteLine($"Seconds to benchmarking: {seconds}");
Console.WriteLine();
// Prepare a message to send
MessageToSend = new byte[size];
// Create a new service
var service = new Service(threads);
// Start the service
Console.Write("Service starting...");
service.Start();
Console.WriteLine("Done!");
// Create echo clients
var echoClients = new List<EchoClient>();
for (int i = 0; i < clients; ++i)
{
var client = new EchoClient(service, address, port, messages);
// client.SetupNoDelay(true);
echoClients.Add(client);
}
TimestampStart = DateTime.UtcNow;
// Connect clients
Console.Write("Clients connecting...");
foreach (var client in echoClients)
client.ConnectAsync();
Console.WriteLine("Done!");
foreach (var client in echoClients)
while (!client.IsConnected)
Thread.Yield();
Console.WriteLine("All clients connected!");
// Wait for benchmarking
Console.Write("Benchmarking...");
Thread.Sleep(seconds * 1000);
Console.WriteLine("Done!");
// Disconnect clients
Console.Write("Clients disconnecting...");
foreach (var client in echoClients)
client.DisconnectAsync();
Console.WriteLine("Done!");
foreach (var client in echoClients)
while (client.IsConnected)
Thread.Yield();
Console.WriteLine("All clients disconnected!");
// Stop the service
Console.Write("Service stopping...");
service.Stop();
Console.WriteLine("Done!");
Console.WriteLine();
Console.WriteLine($"Errors: {TotalErrors}");
Console.WriteLine();
TotalMessages = TotalBytes / size;
Console.WriteLine($"Total time: {Service.GenerateTimePeriod((TimestampStop - TimestampStart).TotalMilliseconds)}");
Console.WriteLine($"Total data: {Service.GenerateDataSize(TotalBytes)}");
Console.WriteLine($"Total messages: {TotalMessages}");
Console.WriteLine($"Data throughput: {Service.GenerateDataSize((long)(TotalBytes / (TimestampStop - TimestampStart).TotalSeconds))}/s");
if (TotalMessages > 0)
{
Console.WriteLine($"Message latency: {Service.GenerateTimePeriod((TimestampStop - TimestampStart).TotalMilliseconds / TotalMessages)}");
Console.WriteLine($"Message throughput: {(long)(TotalMessages / (TimestampStop - TimestampStart).TotalSeconds)} msg/s");
}
}
19
Source : Program.cs
with MIT License
from chronoxor
with MIT License
from chronoxor
static void Main(string[] args)
{
bool help = false;
int port = 1111;
int threads = Environment.ProcessorCount;
var options = new OptionSet()
{
{ "h|?|help", v => help = v != null },
{ "p|port=", v => port = int.Parse(v) },
{ "t|threads=", v => threads = int.Parse(v) }
};
try
{
options.Parse(args);
}
catch (OptionException e)
{
Console.Write("Command line error: ");
Console.WriteLine(e.Message);
Console.WriteLine("Try `--help' to get usage information.");
return;
}
if (help)
{
Console.WriteLine("Usage:");
options.WriteOptionDescriptions(Console.Out);
return;
}
Console.WriteLine($"Server port: {port}");
Console.WriteLine($"Working threads: {threads}");
Console.WriteLine();
// Create a new service
var service = new Service(threads);
// Start the service
Console.Write("Service starting...");
service.Start();
Console.WriteLine("Done!");
// Create a new echo server
var server = new EchoServer(service, port, InternetProtocol.IPv4);
// server.SetupNoDelay(true);
server.SetupReuseAddress(true);
server.SetupReusePort(true);
// 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
for (;;)
{
string line = Console.ReadLine();
if (line == string.Empty)
break;
// Restart the server
if (line == "!")
{
Console.Write("Server restarting...");
server.Restart();
Console.WriteLine("Done!");
}
}
// Stop the server
Console.Write("Server stopping...");
server.Stop();
Console.WriteLine("Done!");
// Stop the service
Console.Write("Service stopping...");
service.Stop();
Console.WriteLine("Done!");
}
19
Source : Program.cs
with MIT License
from chronoxor
with MIT License
from chronoxor
static void Main(string[] args)
{
bool help = false;
string address = "127.0.0.1";
int port = 1111;
int threads = Environment.ProcessorCount;
int clients = 100;
int size = 32;
int seconds = 10;
var options = new OptionSet()
{
{ "h|?|help", v => help = v != null },
{ "a|address=", v => address = v },
{ "p|port=", v => port = int.Parse(v) },
{ "t|threads=", v => threads = int.Parse(v) },
{ "c|clients=", v => clients = int.Parse(v) },
{ "s|size=", v => size = int.Parse(v) },
{ "z|seconds=", v => seconds = int.Parse(v) }
};
try
{
options.Parse(args);
}
catch (OptionException e)
{
Console.Write("Command line error: ");
Console.WriteLine(e.Message);
Console.WriteLine("Try `--help' to get usage information.");
return;
}
if (help)
{
Console.WriteLine("Usage:");
options.WriteOptionDescriptions(Console.Out);
return;
}
Console.WriteLine($"Server address: {address}");
Console.WriteLine($"Server port: {port}");
Console.WriteLine($"Working threads: {threads}");
Console.WriteLine($"Working clients: {clients}");
Console.WriteLine($"Message size: {size}");
Console.WriteLine($"Seconds to benchmarking: {seconds}");
Console.WriteLine();
// Prepare a message to send
MessageToSend = new byte[size];
// Create a new service
var service = new Service(threads);
// Start the service
Console.Write("Service starting...");
service.Start();
Console.WriteLine("Done!");
// Create multicast clients
var multicastClients = new List<MulticastClient>();
for (int i = 0; i < clients; ++i)
{
var client = new MulticastClient(service, address, port);
// client.SetupNoDelay(true);
multicastClients.Add(client);
}
TimestampStart = DateTime.UtcNow;
// Connect clients
Console.Write("Clients connecting...");
foreach (var client in multicastClients)
client.ConnectAsync();
Console.WriteLine("Done!");
foreach (var client in multicastClients)
while (!client.IsConnected)
Thread.Yield();
Console.WriteLine("All clients connected!");
// Wait for benchmarking
Console.Write("Benchmarking...");
Thread.Sleep(seconds * 1000);
Console.WriteLine("Done!");
// Disconnect clients
Console.Write("Clients disconnecting...");
foreach (var client in multicastClients)
client.DisconnectAsync();
Console.WriteLine("Done!");
foreach (var client in multicastClients)
while (client.IsConnected)
Thread.Yield();
Console.WriteLine("All clients disconnected!");
TimestampStop = DateTime.UtcNow;
// Stop the service
Console.Write("Service stopping...");
service.Stop();
Console.WriteLine("Done!");
Console.WriteLine();
Console.WriteLine($"Errors: {TotalErrors}");
Console.WriteLine();
TotalMessages = TotalBytes / size;
Console.WriteLine($"Total time: {Service.GenerateTimePeriod((TimestampStop - TimestampStart).TotalMilliseconds)}");
Console.WriteLine($"Total data: {Service.GenerateDataSize(TotalBytes)}");
Console.WriteLine($"Total messages: {TotalMessages}");
Console.WriteLine($"Data throughput: {Service.GenerateDataSize((long)(TotalBytes / (TimestampStop - TimestampStart).TotalSeconds))}/s");
if (TotalMessages > 0)
{
Console.WriteLine($"Message latency: {Service.GenerateTimePeriod((TimestampStop - TimestampStart).TotalMilliseconds / TotalMessages)}");
Console.WriteLine($"Message throughput: {(long)(TotalMessages / (TimestampStop - TimestampStart).TotalSeconds)} msg/s");
}
}
19
Source : Program.cs
with MIT License
from chronoxor
with MIT License
from chronoxor
static void Main(string[] args)
{
bool help = false;
int port = 1111;
int threads = Environment.ProcessorCount;
int messagesRate = 1000000;
int messageSize = 32;
var options = new OptionSet()
{
{ "h|?|help", v => help = v != null },
{ "p|port=", v => port = int.Parse(v) },
{ "t|threads=", v => threads = int.Parse(v) },
{ "m|messages=", v => messagesRate = int.Parse(v) },
{ "s|size=", v => messageSize = int.Parse(v) }
};
try
{
options.Parse(args);
}
catch (OptionException e)
{
Console.Write("Command line error: ");
Console.WriteLine(e.Message);
Console.WriteLine("Try `--help' to get usage information.");
return;
}
if (help)
{
Console.WriteLine("Usage:");
options.WriteOptionDescriptions(Console.Out);
return;
}
Console.WriteLine($"Server port: {port}");
Console.WriteLine($"Working threads: {threads}");
Console.WriteLine($"Messages rate: {messagesRate}");
Console.WriteLine($"Message size: {messageSize}");
Console.WriteLine();
// Create a new service
var service = new Service(threads);
// Start the service
Console.Write("Service starting...");
service.Start();
Console.WriteLine("Done!");
// Create a new echo server
var server = new MulticastServer(service, port, InternetProtocol.IPv4);
// server.SetupNoDelay(true);
server.SetupReuseAddress(true);
server.SetupReusePort(true);
// Start the server
Console.Write("Server starting...");
server.Start();
Console.WriteLine("Done!");
// Start the multicasting thread
bool multicasting = true;
var multicaster = Task.Factory.StartNew(() =>
{
// Prepare message to multicast
byte[] message = new byte[messageSize];
// Multicasting loop
while (multicasting)
{
var start = DateTime.UtcNow;
for (int i = 0; i < messagesRate; ++i)
server.Multicast(message);
var end = DateTime.UtcNow;
// Sleep for remaining time or yield
var milliseconds = (int)(end - start).TotalMilliseconds;
if (milliseconds < 1000)
Thread.Sleep(1000 - milliseconds);
else
Thread.Yield();
}
});
Console.WriteLine("Press Enter to stop the server or '!' to restart the server...");
// Perform text input
for (;;)
{
string line = Console.ReadLine();
if (line == string.Empty)
break;
// Restart the server
if (line == "!")
{
Console.Write("Server restarting...");
server.Restart();
Console.WriteLine("Done!");
}
}
// Stop the multicasting thread
multicasting = false;
multicaster.Wait();
// Stop the server
Console.Write("Server stopping...");
server.Stop();
Console.WriteLine("Done!");
// Stop the service
Console.Write("Service stopping...");
service.Stop();
Console.WriteLine("Done!");
}
19
Source : Program.cs
with MIT License
from chronoxor
with MIT License
from chronoxor
static void Main(string[] args)
{
bool help = false;
string address = "239.255.0.1";
int port = 3333;
int threads = Environment.ProcessorCount;
int messagesRate = 1000000;
int messageSize = 32;
var options = new OptionSet()
{
{ "h|?|help", v => help = v != null },
{ "a|address=", v => address = v },
{ "p|port=", v => port = int.Parse(v) },
{ "t|threads=", v => threads = int.Parse(v) },
{ "m|messages=", v => messagesRate = int.Parse(v) },
{ "s|size=", v => messageSize = int.Parse(v) }
};
try
{
options.Parse(args);
}
catch (OptionException e)
{
Console.Write("Command line error: ");
Console.WriteLine(e.Message);
Console.WriteLine("Try `--help' to get usage information.");
return;
}
if (help)
{
Console.WriteLine("Usage:");
options.WriteOptionDescriptions(Console.Out);
return;
}
Console.WriteLine($"Server address: {address}");
Console.WriteLine($"Server port: {port}");
Console.WriteLine($"Working threads: {threads}");
Console.WriteLine($"Messages rate: {messagesRate}");
Console.WriteLine($"Message size: {messageSize}");
Console.WriteLine();
// Create a new service
var service = new Service(threads);
// Start the service
Console.Write("Service starting...");
service.Start();
Console.WriteLine("Done!");
// Create a new echo server
var server = new MulticastServer(service, 0, InternetProtocol.IPv4);
server.SetupReuseAddress(true);
server.SetupReusePort(true);
// Start the server
Console.Write("Server starting...");
server.Start(address, port);
Console.WriteLine("Done!");
// Start the multicasting thread
bool multicasting = true;
var multicaster = Task.Factory.StartNew(() =>
{
// Prepare message to multicast
byte[] message = new byte[messageSize];
// Multicasting loop
while (multicasting)
{
var start = DateTime.UtcNow;
for (int i = 0; i < messagesRate; ++i)
server.Multicast(message);
var end = DateTime.UtcNow;
// Sleep for remaining time or yield
var milliseconds = (int)(end - start).TotalMilliseconds;
if (milliseconds < 1000)
Thread.Sleep(1000 - milliseconds);
else
Thread.Yield();
}
});
Console.WriteLine("Press Enter to stop the server or '!' to restart the server...");
// Perform text input
for (;;)
{
string line = Console.ReadLine();
if (line == string.Empty)
break;
// Restart the server
if (line == "!")
{
Console.Write("Server restarting...");
server.Restart();
Console.WriteLine("Done!");
}
}
// Stop the multicasting thread
multicasting = false;
multicaster.Wait();
// Stop the server
Console.Write("Server stopping...");
server.Stop();
Console.WriteLine("Done!");
// Stop the service
Console.Write("Service stopping...");
service.Stop();
Console.WriteLine("Done!");
}
19
Source : Program.cs
with MIT License
from chronoxor
with MIT License
from chronoxor
static void Main(string[] args)
{
bool help = false;
int port = 3333;
int threads = Environment.ProcessorCount;
var options = new OptionSet()
{
{ "h|?|help", v => help = v != null },
{ "p|port=", v => port = int.Parse(v) },
{ "t|threads=", v => threads = int.Parse(v) }
};
try
{
options.Parse(args);
}
catch (OptionException e)
{
Console.Write("Command line error: ");
Console.WriteLine(e.Message);
Console.WriteLine("Try `--help' to get usage information.");
return;
}
if (help)
{
Console.WriteLine("Usage:");
options.WriteOptionDescriptions(Console.Out);
return;
}
Console.WriteLine($"Server port: {port}");
Console.WriteLine($"Working threads: {threads}");
Console.WriteLine();
// Create a new service
var service = new Service(threads);
// Start the service
Console.Write("Service starting...");
service.Start();
Console.WriteLine("Done!");
// Create a new echo server
var server = new EchoServer(service, port, InternetProtocol.IPv4);
server.SetupReuseAddress(true);
server.SetupReusePort(true);
// 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
for (;;)
{
string line = Console.ReadLine();
if (line == string.Empty)
break;
// Restart the server
if (line == "!")
{
Console.Write("Server restarting...");
server.Restart();
Console.WriteLine("Done!");
}
}
// Stop the server
Console.Write("Server stopping...");
server.Stop();
Console.WriteLine("Done!");
// Stop the service
Console.Write("Service stopping...");
service.Stop();
Console.WriteLine("Done!");
}
19
Source : Program.cs
with MIT License
from chronoxor
with MIT License
from chronoxor
static void Main(string[] args)
{
bool help = false;
int port = 2222;
int threads = Environment.ProcessorCount;
var options = new OptionSet()
{
{ "h|?|help", v => help = v != null },
{ "p|port=", v => port = int.Parse(v) },
{ "t|threads=", v => threads = int.Parse(v) }
};
try
{
options.Parse(args);
}
catch (OptionException e)
{
Console.Write("Command line error: ");
Console.WriteLine(e.Message);
Console.WriteLine("Try `--help' to get usage information.");
return;
}
if (help)
{
Console.WriteLine("Usage:");
options.WriteOptionDescriptions(Console.Out);
return;
}
Console.WriteLine($"Server port: {port}");
Console.WriteLine($"Working threads: {threads}");
Console.WriteLine();
// Create a new service
var service = new Service(threads);
// Start the service
Console.Write("Service starting...");
service.Start();
Console.WriteLine("Done!");
// Create and prepare a new SSL server context
var context = new SslContext(SslMethod.TLSV12);
context.SetPreplacedword("qwerty");
context.UseCertificateChainFile("server.pem");
context.UsePrivateKeyFile("server.pem", SslFileFormat.PEM);
context.UseTmpDHFile("dh4096.pem");
// Create a new echo server
var server = new EchoServer(service, context, port, InternetProtocol.IPv4);
// server.SetupNoDelay(true);
server.SetupReuseAddress(true);
server.SetupReusePort(true);
// 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
for (;;)
{
string line = Console.ReadLine();
if (line == string.Empty)
break;
// Restart the server
if (line == "!")
{
Console.Write("Server restarting...");
server.Restart();
Console.WriteLine("Done!");
}
}
// Stop the server
Console.Write("Server stopping...");
server.Stop();
Console.WriteLine("Done!");
// Stop the service
Console.Write("Service stopping...");
service.Stop();
Console.WriteLine("Done!");
}
19
Source : Program.cs
with MIT License
from chronoxor
with MIT License
from chronoxor
static void Main(string[] args)
{
bool help = false;
string address = "127.0.0.1";
int port = 2222;
int threads = Environment.ProcessorCount;
int clients = 100;
int size = 32;
int seconds = 10;
var options = new OptionSet()
{
{ "h|?|help", v => help = v != null },
{ "a|address=", v => address = v },
{ "p|port=", v => port = int.Parse(v) },
{ "t|threads=", v => threads = int.Parse(v) },
{ "c|clients=", v => clients = int.Parse(v) },
{ "s|size=", v => size = int.Parse(v) },
{ "z|seconds=", v => seconds = int.Parse(v) }
};
try
{
options.Parse(args);
}
catch (OptionException e)
{
Console.Write("Command line error: ");
Console.WriteLine(e.Message);
Console.WriteLine("Try `--help' to get usage information.");
return;
}
if (help)
{
Console.WriteLine("Usage:");
options.WriteOptionDescriptions(Console.Out);
return;
}
Console.WriteLine($"Server address: {address}");
Console.WriteLine($"Server port: {port}");
Console.WriteLine($"Working threads: {threads}");
Console.WriteLine($"Working clients: {clients}");
Console.WriteLine($"Message size: {size}");
Console.WriteLine($"Seconds to benchmarking: {seconds}");
Console.WriteLine();
// Prepare a message to send
MessageToSend = new byte[size];
// Create a new service
var service = new Service(threads);
// Start the service
Console.Write("Service starting...");
service.Start();
Console.WriteLine("Done!");
// Create and prepare a new SSL client context
var context = new SslContext(SslMethod.TLSV12);
context.SetDefaultVerifyPaths();
context.SetRootCerts();
context.SetVerifyMode(SslVerifyMode.VerifyPeer | SslVerifyMode.VerifyFailIfNoPeerCert);
context.LoadVerifyFile("ca.pem");
// Create multicast clients
var multicastClients = new List<MulticastClient>();
for (int i = 0; i < clients; ++i)
{
var client = new MulticastClient(service, context, address, port);
// client.SetupNoDelay(true);
multicastClients.Add(client);
}
TimestampStart = DateTime.UtcNow;
// Connect clients
Console.Write("Clients connecting...");
foreach (var client in multicastClients)
client.ConnectAsync();
Console.WriteLine("Done!");
foreach (var client in multicastClients)
while (!client.IsHandshaked)
Thread.Yield();
Console.WriteLine("All clients connected!");
// Wait for benchmarking
Console.Write("Benchmarking...");
Thread.Sleep(seconds * 1000);
Console.WriteLine("Done!");
// Disconnect clients
Console.Write("Clients disconnecting...");
foreach (var client in multicastClients)
client.DisconnectAsync();
Console.WriteLine("Done!");
foreach (var client in multicastClients)
while (client.IsConnected)
Thread.Yield();
Console.WriteLine("All clients disconnected!");
TimestampStop = DateTime.UtcNow;
// Stop the service
Console.Write("Service stopping...");
service.Stop();
Console.WriteLine("Done!");
Console.WriteLine();
Console.WriteLine($"Errors: {TotalErrors}");
Console.WriteLine();
TotalMessages = TotalBytes / size;
Console.WriteLine($"Total time: {Service.GenerateTimePeriod((TimestampStop - TimestampStart).TotalMilliseconds)}");
Console.WriteLine($"Total data: {Service.GenerateDataSize(TotalBytes)}");
Console.WriteLine($"Total messages: {TotalMessages}");
Console.WriteLine($"Data throughput: {Service.GenerateDataSize((long)(TotalBytes / (TimestampStop - TimestampStart).TotalSeconds))}/s");
if (TotalMessages > 0)
{
Console.WriteLine($"Message latency: {Service.GenerateTimePeriod((TimestampStop - TimestampStart).TotalMilliseconds / TotalMessages)}");
Console.WriteLine($"Message throughput: {(long)(TotalMessages / (TimestampStop - TimestampStart).TotalSeconds)} msg/s");
}
}
19
Source : Program.cs
with MIT License
from chronoxor
with MIT License
from chronoxor
static void Main(string[] args)
{
bool help = false;
int port = 2222;
int threads = Environment.ProcessorCount;
int messagesRate = 1000000;
int messageSize = 32;
var options = new OptionSet()
{
{ "h|?|help", v => help = v != null },
{ "p|port=", v => port = int.Parse(v) },
{ "t|threads=", v => threads = int.Parse(v) },
{ "m|messages=", v => messagesRate = int.Parse(v) },
{ "s|size=", v => messageSize = int.Parse(v) }
};
try
{
options.Parse(args);
}
catch (OptionException e)
{
Console.Write("Command line error: ");
Console.WriteLine(e.Message);
Console.WriteLine("Try `--help' to get usage information.");
return;
}
if (help)
{
Console.WriteLine("Usage:");
options.WriteOptionDescriptions(Console.Out);
return;
}
Console.WriteLine($"Server port: {port}");
Console.WriteLine($"Working threads: {threads}");
Console.WriteLine($"Messages rate: {messagesRate}");
Console.WriteLine($"Message size: {messageSize}");
Console.WriteLine();
// Create a new service
var service = new Service(threads);
// Start the service
Console.Write("Service starting...");
service.Start();
Console.WriteLine("Done!");
// Create and prepare a new SSL server context
var context = new SslContext(SslMethod.TLSV12);
context.SetPreplacedword("qwerty");
context.UseCertificateChainFile("server.pem");
context.UsePrivateKeyFile("server.pem", SslFileFormat.PEM);
context.UseTmpDHFile("dh4096.pem");
// Create a new echo server
var server = new MulticastServer(service, context, port, InternetProtocol.IPv4);
// server.SetupNoDelay(true);
server.SetupReuseAddress(true);
server.SetupReusePort(true);
// Start the server
Console.Write("Server starting...");
server.Start();
Console.WriteLine("Done!");
// Start the multicasting thread
bool multicasting = true;
var multicaster = Task.Factory.StartNew(() =>
{
// Prepare message to multicast
byte[] message = new byte[messageSize];
// Multicasting loop
while (multicasting)
{
var start = DateTime.UtcNow;
for (int i = 0; i < messagesRate; ++i)
server.Multicast(message);
var end = DateTime.UtcNow;
// Sleep for remaining time or yield
var milliseconds = (int)(end - start).TotalMilliseconds;
if (milliseconds < 1000)
Thread.Sleep(1000 - milliseconds);
else
Thread.Yield();
}
});
Console.WriteLine("Press Enter to stop the server or '!' to restart the server...");
// Perform text input
for (;;)
{
string line = Console.ReadLine();
if (line == string.Empty)
break;
// Restart the server
if (line == "!")
{
Console.Write("Server restarting...");
server.Restart();
Console.WriteLine("Done!");
}
}
// Stop the multicasting thread
multicasting = false;
multicaster.Wait();
// Stop the server
Console.Write("Server stopping...");
server.Stop();
Console.WriteLine("Done!");
// Stop the service
Console.Write("Service stopping...");
service.Stop();
Console.WriteLine("Done!");
}
19
Source : Program.cs
with MIT License
from chronoxor
with MIT License
from chronoxor
static void Main(string[] args)
{
bool help = false;
string address = "127.0.0.1";
int port = 8443;
int clients = 100;
int messages = 1;
int seconds = 10;
var options = new OptionSet()
{
{ "h|?|help", v => help = v != null },
{ "a|address=", v => address = v },
{ "p|port=", v => port = int.Parse(v) },
{ "c|clients=", v => clients = int.Parse(v) },
{ "m|messages=", v => messages = int.Parse(v) },
{ "z|seconds=", v => seconds = int.Parse(v) }
};
try
{
options.Parse(args);
}
catch (OptionException e)
{
Console.Write("Command line error: ");
Console.WriteLine(e.Message);
Console.WriteLine("Try `--help' to get usage information.");
return;
}
if (help)
{
Console.WriteLine("Usage:");
options.WriteOptionDescriptions(Console.Out);
return;
}
Console.WriteLine($"Server address: {address}");
Console.WriteLine($"Server port: {port}");
Console.WriteLine($"Working clients: {clients}");
Console.WriteLine($"Working messages: {messages}");
Console.WriteLine($"Seconds to benchmarking: {seconds}");
Console.WriteLine();
// Create and prepare a new SSL client context
var context = new SslContext(SslProtocols.Tls12, new X509Certificate2("client.pfx", "qwerty"), (sender, certificate, chain, sslPolicyErrors) => true);
// Create HTTPS clients
var httpsClients = new List<HttpsTraceClient>();
for (int i = 0; i < clients; i++)
{
var client = new HttpsTraceClient(context, address, port, messages);
// client.OptionNoDelay = true;
httpsClients.Add(client);
}
TimestampStart = DateTime.UtcNow;
// Connect clients
Console.Write("Clients connecting...");
foreach (var client in httpsClients)
client.ConnectAsync();
Console.WriteLine("Done!");
foreach (var client in httpsClients)
while (!client.IsHandshaked)
Thread.Yield();
Console.WriteLine("All clients connected!");
// Wait for benchmarking
Console.Write("Benchmarking...");
Thread.Sleep(seconds * 1000);
Console.WriteLine("Done!");
// Disconnect clients
Console.Write("Clients disconnecting...");
foreach (var client in httpsClients)
client.Disconnect();
Console.WriteLine("Done!");
foreach (var client in httpsClients)
while (client.IsConnected)
Thread.Yield();
Console.WriteLine("All clients disconnected!");
Console.WriteLine();
Console.WriteLine($"Errors: {TotalErrors}");
Console.WriteLine();
Console.WriteLine($"Total time: {Utilities.GenerateTimePeriod((TimestampStop - TimestampStart).TotalMilliseconds)}");
Console.WriteLine($"Total data: {Utilities.GenerateDataSize(TotalBytes)}");
Console.WriteLine($"Total messages: {TotalMessages}");
Console.WriteLine($"Data throughput: {Utilities.GenerateDataSize((long)(TotalBytes / (TimestampStop - TimestampStart).TotalSeconds))}/s");
if (TotalMessages > 0)
{
Console.WriteLine($"Message latency: {Utilities.GenerateTimePeriod((TimestampStop - TimestampStart).TotalMilliseconds / TotalMessages)}");
Console.WriteLine($"Message throughput: {(long)(TotalMessages / (TimestampStop - TimestampStart).TotalSeconds)} msg/s");
}
}
19
Source : Program.cs
with MIT License
from chronoxor
with MIT License
from chronoxor
static void Main(string[] args)
{
bool help = false;
string address = "127.0.0.1";
int port = 8080;
int clients = 100;
int messages = 1;
int seconds = 10;
var options = new OptionSet()
{
{ "h|?|help", v => help = v != null },
{ "a|address=", v => address = v },
{ "p|port=", v => port = int.Parse(v) },
{ "c|clients=", v => clients = int.Parse(v) },
{ "m|messages=", v => messages = int.Parse(v) },
{ "z|seconds=", v => seconds = int.Parse(v) }
};
try
{
options.Parse(args);
}
catch (OptionException e)
{
Console.Write("Command line error: ");
Console.WriteLine(e.Message);
Console.WriteLine("Try `--help' to get usage information.");
return;
}
if (help)
{
Console.WriteLine("Usage:");
options.WriteOptionDescriptions(Console.Out);
return;
}
Console.WriteLine($"Server address: {address}");
Console.WriteLine($"Server port: {port}");
Console.WriteLine($"Working clients: {clients}");
Console.WriteLine($"Working messages: {messages}");
Console.WriteLine($"Seconds to benchmarking: {seconds}");
Console.WriteLine();
// Create HTTP clients
var httpClients = new List<HttpTraceClient>();
for (int i = 0; i < clients; i++)
{
var client = new HttpTraceClient(address, port, messages);
// client.OptionNoDelay = true;
httpClients.Add(client);
}
TimestampStart = DateTime.UtcNow;
// Connect clients
Console.Write("Clients connecting...");
foreach (var client in httpClients)
client.ConnectAsync();
Console.WriteLine("Done!");
foreach (var client in httpClients)
while (!client.IsConnected)
Thread.Yield();
Console.WriteLine("All clients connected!");
// Wait for benchmarking
Console.Write("Benchmarking...");
Thread.Sleep(seconds * 1000);
Console.WriteLine("Done!");
// Disconnect clients
Console.Write("Clients disconnecting...");
foreach (var client in httpClients)
client.Disconnect();
Console.WriteLine("Done!");
foreach (var client in httpClients)
while (client.IsConnected)
Thread.Yield();
Console.WriteLine("All clients disconnected!");
Console.WriteLine();
Console.WriteLine($"Errors: {TotalErrors}");
Console.WriteLine();
Console.WriteLine($"Total time: {Utilities.GenerateTimePeriod((TimestampStop - TimestampStart).TotalMilliseconds)}");
Console.WriteLine($"Total data: {Utilities.GenerateDataSize(TotalBytes)}");
Console.WriteLine($"Total messages: {TotalMessages}");
Console.WriteLine($"Data throughput: {Utilities.GenerateDataSize((long)(TotalBytes / (TimestampStop - TimestampStart).TotalSeconds))}/s");
if (TotalMessages > 0)
{
Console.WriteLine($"Message latency: {Utilities.GenerateTimePeriod((TimestampStop - TimestampStart).TotalMilliseconds / TotalMessages)}");
Console.WriteLine($"Message throughput: {(long)(TotalMessages / (TimestampStop - TimestampStart).TotalSeconds)} msg/s");
}
}
19
Source : Program.cs
with MIT License
from chronoxor
with MIT License
from chronoxor
static void Main(string[] args)
{
bool help = false;
string address = "127.0.0.1";
int port = 1111;
int clients = 100;
int size = 32;
int seconds = 10;
var options = new OptionSet()
{
{ "h|?|help", v => help = v != null },
{ "a|address=", v => address = v },
{ "p|port=", v => port = int.Parse(v) },
{ "c|clients=", v => clients = int.Parse(v) },
{ "s|size=", v => size = int.Parse(v) },
{ "z|seconds=", v => seconds = int.Parse(v) }
};
try
{
options.Parse(args);
}
catch (OptionException e)
{
Console.Write("Command line error: ");
Console.WriteLine(e.Message);
Console.WriteLine("Try `--help' to get usage information.");
return;
}
if (help)
{
Console.WriteLine("Usage:");
options.WriteOptionDescriptions(Console.Out);
return;
}
Console.WriteLine($"Server address: {address}");
Console.WriteLine($"Server port: {port}");
Console.WriteLine($"Working clients: {clients}");
Console.WriteLine($"Message size: {size}");
Console.WriteLine($"Seconds to benchmarking: {seconds}");
Console.WriteLine();
// Prepare a message to send
MessageToSend = new byte[size];
// Create multicast clients
var multicastClients = new List<MulticastClient>();
for (int i = 0; i < clients; i++)
{
var client = new MulticastClient(address, port);
// client.OptionNoDelay = true;
multicastClients.Add(client);
}
TimestampStart = DateTime.UtcNow;
// Connect clients
Console.Write("Clients connecting...");
foreach (var client in multicastClients)
client.ConnectAsync();
Console.WriteLine("Done!");
foreach (var client in multicastClients)
while (!client.IsConnected)
Thread.Yield();
Console.WriteLine("All clients connected!");
// Wait for benchmarking
Console.Write("Benchmarking...");
Thread.Sleep(seconds * 1000);
Console.WriteLine("Done!");
// Disconnect clients
Console.Write("Clients disconnecting...");
foreach (var client in multicastClients)
client.DisconnectAsync();
Console.WriteLine("Done!");
foreach (var client in multicastClients)
while (client.IsConnected)
Thread.Yield();
Console.WriteLine("All clients disconnected!");
TimestampStop = DateTime.UtcNow;
Console.WriteLine();
Console.WriteLine($"Errors: {TotalErrors}");
Console.WriteLine();
TotalMessages = TotalBytes / size;
Console.WriteLine($"Total time: {Utilities.GenerateTimePeriod((TimestampStop - TimestampStart).TotalMilliseconds)}");
Console.WriteLine($"Total data: {Utilities.GenerateDataSize(TotalBytes)}");
Console.WriteLine($"Total messages: {TotalMessages}");
Console.WriteLine($"Data throughput: {Utilities.GenerateDataSize((long)(TotalBytes / (TimestampStop - TimestampStart).TotalSeconds))}/s");
if (TotalMessages > 0)
{
Console.WriteLine($"Message latency: {Utilities.GenerateTimePeriod((TimestampStop - TimestampStart).TotalMilliseconds / TotalMessages)}");
Console.WriteLine($"Message throughput: {(long)(TotalMessages / (TimestampStop - TimestampStart).TotalSeconds)} msg/s");
}
}
19
Source : Program.cs
with MIT License
from chronoxor
with MIT License
from chronoxor
static void Main(string[] args)
{
bool help = false;
int port = 1111;
int messagesRate = 1000000;
int messageSize = 32;
var options = new OptionSet()
{
{ "h|?|help", v => help = v != null },
{ "p|port=", v => port = int.Parse(v) },
{ "m|messages=", v => messagesRate = int.Parse(v) },
{ "s|size=", v => messageSize = int.Parse(v) }
};
try
{
options.Parse(args);
}
catch (OptionException e)
{
Console.Write("Command line error: ");
Console.WriteLine(e.Message);
Console.WriteLine("Try `--help' to get usage information.");
return;
}
if (help)
{
Console.WriteLine("Usage:");
options.WriteOptionDescriptions(Console.Out);
return;
}
Console.WriteLine($"Server port: {port}");
Console.WriteLine($"Messages rate: {messagesRate}");
Console.WriteLine($"Message size: {messageSize}");
Console.WriteLine();
// Create a new echo server
var server = new MulticastServer(IPAddress.Any, port);
// server.OptionNoDelay = true;
server.OptionReuseAddress = true;
// Start the server
Console.Write("Server starting...");
server.Start();
Console.WriteLine("Done!");
// Start the multicasting thread
bool multicasting = true;
var multicaster = Task.Factory.StartNew(() =>
{
// Prepare message to multicast
byte[] message = new byte[messageSize];
// Multicasting loop
while (multicasting)
{
var start = DateTime.UtcNow;
for (int i = 0; i < messagesRate; i++)
server.Multicast(message);
var end = DateTime.UtcNow;
// Sleep for remaining time or yield
var milliseconds = (int)(end - start).TotalMilliseconds;
if (milliseconds < 1000)
Thread.Sleep(1000 - milliseconds);
else
Thread.Yield();
}
});
Console.WriteLine("Press Enter to stop the server or '!' to restart the server...");
// Perform text input
for (;;)
{
string line = Console.ReadLine();
if (string.IsNullOrEmpty(line))
break;
// Restart the server
if (line == "!")
{
Console.Write("Server restarting...");
server.Restart();
Console.WriteLine("Done!");
}
}
// Stop the multicasting thread
multicasting = false;
multicaster.Wait();
// Stop the server
Console.Write("Server stopping...");
server.Stop();
Console.WriteLine("Done!");
}
19
Source : Program.cs
with MIT License
from chronoxor
with MIT License
from chronoxor
static void Main(string[] args)
{
bool help = false;
string address = "239.255.0.1";
int port = 3333;
int clients = 100;
int size = 32;
int seconds = 10;
var options = new OptionSet()
{
{ "h|?|help", v => help = v != null },
{ "a|address=", v => address = v },
{ "p|port=", v => port = int.Parse(v) },
{ "c|clients=", v => clients = int.Parse(v) },
{ "s|size=", v => size = int.Parse(v) },
{ "z|seconds=", v => seconds = int.Parse(v) }
};
try
{
options.Parse(args);
}
catch (OptionException e)
{
Console.Write("Command line error: ");
Console.WriteLine(e.Message);
Console.WriteLine("Try `--help' to get usage information.");
return;
}
if (help)
{
Console.WriteLine("Usage:");
options.WriteOptionDescriptions(Console.Out);
return;
}
Console.WriteLine($"Server address: {address}");
Console.WriteLine($"Server port: {port}");
Console.WriteLine($"Working clients: {clients}");
Console.WriteLine($"Message size: {size}");
Console.WriteLine($"Seconds to benchmarking: {seconds}");
Console.WriteLine();
// Prepare a message to send
MessageToSend = new byte[size];
// Create multicast clients
var multicastClients = new List<MulticastClient>();
for (int i = 0; i < clients; i++)
{
var client = new MulticastClient("0.0.0.0", address, port);
client.SetupMulticast(true);
multicastClients.Add(client);
}
TimestampStart = DateTime.UtcNow;
// Connect clients
Console.Write("Clients connecting...");
foreach (var client in multicastClients)
client.Connect();
Console.WriteLine("Done!");
foreach (var client in multicastClients)
while (!client.IsConnected)
Thread.Yield();
Console.WriteLine("All clients connected!");
// Wait for benchmarking
Console.Write("Benchmarking...");
Thread.Sleep(seconds * 1000);
Console.WriteLine("Done!");
// Disconnect clients
Console.Write("Clients disconnecting...");
foreach (var client in multicastClients)
client.Disconnect();
Console.WriteLine("Done!");
foreach (var client in multicastClients)
while (client.IsConnected)
Thread.Yield();
Console.WriteLine("All clients disconnected!");
TimestampStop = DateTime.UtcNow;
Console.WriteLine();
Console.WriteLine($"Errors: {TotalErrors}");
Console.WriteLine();
TotalMessages = TotalBytes / size;
Console.WriteLine($"Total time: {Utilities.GenerateTimePeriod((TimestampStop - TimestampStart).TotalMilliseconds)}");
Console.WriteLine($"Total data: {Utilities.GenerateDataSize(TotalBytes)}");
Console.WriteLine($"Total messages: {TotalMessages}");
Console.WriteLine($"Data throughput: {Utilities.GenerateDataSize((long)(TotalBytes / (TimestampStop - TimestampStart).TotalSeconds))}/s");
if (TotalMessages > 0)
{
Console.WriteLine($"Message latency: {Utilities.GenerateTimePeriod((TimestampStop - TimestampStart).TotalMilliseconds / TotalMessages)}");
Console.WriteLine($"Message throughput: {(long)(TotalMessages / (TimestampStop - TimestampStart).TotalSeconds)} msg/s");
}
}
19
Source : Program.cs
with MIT License
from chronoxor
with MIT License
from chronoxor
static void Main(string[] args)
{
bool help = false;
int port = 8080;
var options = new OptionSet()
{
{ "h|?|help", v => help = v != null },
{ "p|port=", v => port = int.Parse(v) }
};
try
{
options.Parse(args);
}
catch (OptionException e)
{
Console.Write("Command line error: ");
Console.WriteLine(e.Message);
Console.WriteLine("Try `--help' to get usage information.");
return;
}
if (help)
{
Console.WriteLine("Usage:");
options.WriteOptionDescriptions(Console.Out);
return;
}
Console.WriteLine($"Server port: {port}");
Console.WriteLine();
// Create a new echo server
var server = new EchoServer(IPAddress.Any, port);
// server.OptionNoDelay = true;
server.OptionReuseAddress = true;
// 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
for (;;)
{
string line = Console.ReadLine();
if (string.IsNullOrEmpty(line))
break;
// Restart the server
if (line == "!")
{
Console.Write("Server restarting...");
server.Restart();
Console.WriteLine("Done!");
}
}
// Stop the server
Console.Write("Server stopping...");
server.Stop();
Console.WriteLine("Done!");
}
19
Source : Program.cs
with MIT License
from chronoxor
with MIT License
from chronoxor
static void Main(string[] args)
{
bool help = false;
string address = "127.0.0.1";
int port = 8080;
int clients = 100;
int size = 32;
int seconds = 10;
var options = new OptionSet()
{
{ "h|?|help", v => help = v != null },
{ "a|address=", v => address = v },
{ "p|port=", v => port = int.Parse(v) },
{ "c|clients=", v => clients = int.Parse(v) },
{ "s|size=", v => size = int.Parse(v) },
{ "z|seconds=", v => seconds = int.Parse(v) }
};
try
{
options.Parse(args);
}
catch (OptionException e)
{
Console.Write("Command line error: ");
Console.WriteLine(e.Message);
Console.WriteLine("Try `--help' to get usage information.");
return;
}
if (help)
{
Console.WriteLine("Usage:");
options.WriteOptionDescriptions(Console.Out);
return;
}
Console.WriteLine($"Server address: {address}");
Console.WriteLine($"Server port: {port}");
Console.WriteLine($"Working clients: {clients}");
Console.WriteLine($"Message size: {size}");
Console.WriteLine($"Seconds to benchmarking: {seconds}");
Console.WriteLine();
// Prepare a message to send
MessageToSend = new byte[size];
// Create multicast clients
var multicastClients = new List<MulticastClient>();
for (int i = 0; i < clients; i++)
{
var client = new MulticastClient(address, port);
// client.OptionNoDelay = true;
multicastClients.Add(client);
}
TimestampStart = DateTime.UtcNow;
// Connect clients
Console.Write("Clients connecting...");
foreach (var client in multicastClients)
client.ConnectAsync();
Console.WriteLine("Done!");
foreach (var client in multicastClients)
while (!client.IsConnected)
Thread.Yield();
Console.WriteLine("All clients connected!");
// Wait for benchmarking
Console.Write("Benchmarking...");
Thread.Sleep(seconds * 1000);
Console.WriteLine("Done!");
// Disconnect clients
Console.Write("Clients disconnecting...");
foreach (var client in multicastClients)
client.CloseAsync(100);
Console.WriteLine("Done!");
foreach (var client in multicastClients)
while (client.IsConnected)
Thread.Yield();
Console.WriteLine("All clients disconnected!");
TimestampStop = DateTime.UtcNow;
Console.WriteLine();
Console.WriteLine($"Errors: {TotalErrors}");
Console.WriteLine();
TotalMessages = TotalBytes / size;
Console.WriteLine($"Total time: {Utilities.GenerateTimePeriod((TimestampStop - TimestampStart).TotalMilliseconds)}");
Console.WriteLine($"Total data: {Utilities.GenerateDataSize(TotalBytes)}");
Console.WriteLine($"Total messages: {TotalMessages}");
Console.WriteLine($"Data throughput: {Utilities.GenerateDataSize((long)(TotalBytes / (TimestampStop - TimestampStart).TotalSeconds))}/s");
if (TotalMessages > 0)
{
Console.WriteLine($"Message latency: {Utilities.GenerateTimePeriod((TimestampStop - TimestampStart).TotalMilliseconds / TotalMessages)}");
Console.WriteLine($"Message throughput: {(long)(TotalMessages / (TimestampStop - TimestampStart).TotalSeconds)} msg/s");
}
}
19
Source : Program.cs
with MIT License
from chronoxor
with MIT License
from chronoxor
static void Main(string[] args)
{
bool help = false;
int port = 8080;
int messagesRate = 1000000;
int messageSize = 32;
var options = new OptionSet()
{
{ "h|?|help", v => help = v != null },
{ "p|port=", v => port = int.Parse(v) },
{ "m|messages=", v => messagesRate = int.Parse(v) },
{ "s|size=", v => messageSize = int.Parse(v) }
};
try
{
options.Parse(args);
}
catch (OptionException e)
{
Console.Write("Command line error: ");
Console.WriteLine(e.Message);
Console.WriteLine("Try `--help' to get usage information.");
return;
}
if (help)
{
Console.WriteLine("Usage:");
options.WriteOptionDescriptions(Console.Out);
return;
}
Console.WriteLine($"Server port: {port}");
Console.WriteLine($"Messages rate: {messagesRate}");
Console.WriteLine($"Message size: {messageSize}");
Console.WriteLine();
// Create a new echo server
var server = new MulticastServer(IPAddress.Any, port);
// server.OptionNoDelay = true;
server.OptionReuseAddress = true;
// Start the server
Console.Write("Server starting...");
server.Start();
Console.WriteLine("Done!");
// Start the multicasting thread
bool multicasting = true;
var multicaster = Task.Factory.StartNew(() =>
{
// Prepare message to multicast
byte[] message = new byte[messageSize];
// Multicasting loop
while (multicasting)
{
var start = DateTime.UtcNow;
for (int i = 0; i < messagesRate; i++)
server.MulticastBinary(message, 0, message.Length);
var end = DateTime.UtcNow;
// Sleep for remaining time or yield
var milliseconds = (int)(end - start).TotalMilliseconds;
if (milliseconds < 1000)
Thread.Sleep(1000 - milliseconds);
else
Thread.Yield();
}
});
Console.WriteLine("Press Enter to stop the server or '!' to restart the server...");
// Perform text input
for (;;)
{
string line = Console.ReadLine();
if (string.IsNullOrEmpty(line))
break;
// Restart the server
if (line == "!")
{
Console.Write("Server restarting...");
server.Restart();
Console.WriteLine("Done!");
}
}
// Stop the multicasting thread
multicasting = false;
multicaster.Wait();
// Stop the server
Console.Write("Server stopping...");
server.Stop();
Console.WriteLine("Done!");
}
19
Source : Program.cs
with MIT License
from chronoxor
with MIT License
from chronoxor
static void Main(string[] args)
{
bool help = false;
string address = "127.0.0.1";
int port = 8443;
int clients = 100;
int messages = 1000;
int size = 32;
int seconds = 10;
var options = new OptionSet()
{
{ "h|?|help", v => help = v != null },
{ "a|address=", v => address = v },
{ "p|port=", v => port = int.Parse(v) },
{ "c|clients=", v => clients = int.Parse(v) },
{ "m|messages=", v => messages = int.Parse(v) },
{ "s|size=", v => size = int.Parse(v) },
{ "z|seconds=", v => seconds = int.Parse(v) }
};
try
{
options.Parse(args);
}
catch (OptionException e)
{
Console.Write("Command line error: ");
Console.WriteLine(e.Message);
Console.WriteLine("Try `--help' to get usage information.");
return;
}
if (help)
{
Console.WriteLine("Usage:");
options.WriteOptionDescriptions(Console.Out);
return;
}
Console.WriteLine($"Server address: {address}");
Console.WriteLine($"Server port: {port}");
Console.WriteLine($"Working clients: {clients}");
Console.WriteLine($"Working messages: {messages}");
Console.WriteLine($"Message size: {size}");
Console.WriteLine($"Seconds to benchmarking: {seconds}");
Console.WriteLine();
// Prepare a message to send
MessageToSend = new byte[size];
// Create and prepare a new SSL client context
var context = new SslContext(SslProtocols.Tls12, new X509Certificate2("client.pfx", "qwerty"), (sender, certificate, chain, sslPolicyErrors) => true);
// Create echo clients
var echoClients = new List<EchoClient>();
for (int i = 0; i < clients; i++)
{
var client = new EchoClient(context, address, port, messages);
// client.OptionNoDelay = true;
echoClients.Add(client);
}
TimestampStart = DateTime.UtcNow;
// Connect clients
Console.Write("Clients connecting...");
foreach (var client in echoClients)
client.ConnectAsync();
Console.WriteLine("Done!");
foreach (var client in echoClients)
while (!client.IsConnected)
Thread.Yield();
Console.WriteLine("All clients connected!");
// Wait for benchmarking
Console.Write("Benchmarking...");
Thread.Sleep(seconds * 1000);
Console.WriteLine("Done!");
// Disconnect clients
Console.Write("Clients disconnecting...");
foreach (var client in echoClients)
client.CloseAsync(1000);
Console.WriteLine("Done!");
foreach (var client in echoClients)
while (client.IsConnected)
Thread.Yield();
Console.WriteLine("All clients disconnected!");
Console.WriteLine();
Console.WriteLine($"Errors: {TotalErrors}");
Console.WriteLine();
TotalMessages = TotalBytes / size;
Console.WriteLine($"Total time: {Utilities.GenerateTimePeriod((TimestampStop - TimestampStart).TotalMilliseconds)}");
Console.WriteLine($"Total data: {Utilities.GenerateDataSize(TotalBytes)}");
Console.WriteLine($"Total messages: {TotalMessages}");
Console.WriteLine($"Data throughput: {Utilities.GenerateDataSize((long)(TotalBytes / (TimestampStop - TimestampStart).TotalSeconds))}/s");
if (TotalMessages > 0)
{
Console.WriteLine($"Message latency: {Utilities.GenerateTimePeriod((TimestampStop - TimestampStart).TotalMilliseconds / TotalMessages)}");
Console.WriteLine($"Message throughput: {(long)(TotalMessages / (TimestampStop - TimestampStart).TotalSeconds)} msg/s");
}
}
19
Source : Program.cs
with MIT License
from chronoxor
with MIT License
from chronoxor
static void Main(string[] args)
{
bool help = false;
int port = 8443;
var options = new OptionSet()
{
{ "h|?|help", v => help = v != null },
{ "p|port=", v => port = int.Parse(v) }
};
try
{
options.Parse(args);
}
catch (OptionException e)
{
Console.Write("Command line error: ");
Console.WriteLine(e.Message);
Console.WriteLine("Try `--help' to get usage information.");
return;
}
if (help)
{
Console.WriteLine("Usage:");
options.WriteOptionDescriptions(Console.Out);
return;
}
Console.WriteLine($"Server port: {port}");
Console.WriteLine();
// Create and prepare a new SSL server context
var context = new SslContext(SslProtocols.Tls12, new X509Certificate2("server.pfx", "qwerty"));
// Create a new echo server
var server = new EchoServer(context, IPAddress.Any, port);
// server.OptionNoDelay = true;
server.OptionReuseAddress = true;
// 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
for (;;)
{
string line = Console.ReadLine();
if (string.IsNullOrEmpty(line))
break;
// Restart the server
if (line == "!")
{
Console.Write("Server restarting...");
server.Restart();
Console.WriteLine("Done!");
}
}
// Stop the server
Console.Write("Server stopping...");
server.Stop();
Console.WriteLine("Done!");
}
19
Source : Program.cs
with MIT License
from chronoxor
with MIT License
from chronoxor
static void Main(string[] args)
{
bool help = false;
int port = 8443;
int messagesRate = 1000000;
int messageSize = 32;
var options = new OptionSet()
{
{ "h|?|help", v => help = v != null },
{ "p|port=", v => port = int.Parse(v) },
{ "m|messages=", v => messagesRate = int.Parse(v) },
{ "s|size=", v => messageSize = int.Parse(v) }
};
try
{
options.Parse(args);
}
catch (OptionException e)
{
Console.Write("Command line error: ");
Console.WriteLine(e.Message);
Console.WriteLine("Try `--help' to get usage information.");
return;
}
if (help)
{
Console.WriteLine("Usage:");
options.WriteOptionDescriptions(Console.Out);
return;
}
Console.WriteLine($"Server port: {port}");
Console.WriteLine($"Messages rate: {messagesRate}");
Console.WriteLine($"Message size: {messageSize}");
Console.WriteLine();
// Create and prepare a new SSL server context
var context = new SslContext(SslProtocols.Tls12, new X509Certificate2("server.pfx", "qwerty"), (sender, certificate, chain, sslPolicyErrors) => true);
// Create a new echo server
var server = new MulticastServer(context, IPAddress.Any, port);
// server.OptionNoDelay = true;
server.OptionReuseAddress = true;
// Start the server
Console.Write("Server starting...");
server.Start();
Console.WriteLine("Done!");
// Start the multicasting thread
bool multicasting = true;
var multicaster = Task.Factory.StartNew(() =>
{
// Prepare message to multicast
byte[] message = new byte[messageSize];
// Multicasting loop
while (multicasting)
{
var start = DateTime.UtcNow;
for (int i = 0; i < messagesRate; i++)
server.MulticastBinary(message, 0, message.Length);
var end = DateTime.UtcNow;
// Sleep for remaining time or yield
var milliseconds = (int)(end - start).TotalMilliseconds;
if (milliseconds < 1000)
Thread.Sleep(1000 - milliseconds);
else
Thread.Yield();
}
});
Console.WriteLine("Press Enter to stop the server or '!' to restart the server...");
// Perform text input
for (;;)
{
string line = Console.ReadLine();
if (string.IsNullOrEmpty(line))
break;
// Restart the server
if (line == "!")
{
Console.Write("Server restarting...");
server.Restart();
Console.WriteLine("Done!");
}
}
// Stop the multicasting thread
multicasting = false;
multicaster.Wait();
// Stop the server
Console.Write("Server stopping...");
server.Stop();
Console.WriteLine("Done!");
}
19
Source : Program.cs
with MIT License
from chronoxor
with MIT License
from chronoxor
static void Main(string[] args)
{
bool help = false;
string address = "127.0.0.1";
int port = 3333;
int threads = Environment.ProcessorCount;
int clients = 100;
int messages = 1000;
int size = 32;
int seconds = 10;
var options = new OptionSet()
{
{ "h|?|help", v => help = v != null },
{ "a|address=", v => address = v },
{ "p|port=", v => port = int.Parse(v) },
{ "t|threads=", v => threads = int.Parse(v) },
{ "c|clients=", v => clients = int.Parse(v) },
{ "m|messages=", v => messages = int.Parse(v) },
{ "s|size=", v => size = int.Parse(v) },
{ "z|seconds=", v => seconds = int.Parse(v) }
};
try
{
options.Parse(args);
}
catch (OptionException e)
{
Console.Write("Command line error: ");
Console.WriteLine(e.Message);
Console.WriteLine("Try `--help' to get usage information.");
return;
}
if (help)
{
Console.WriteLine("Usage:");
options.WriteOptionDescriptions(Console.Out);
return;
}
Console.WriteLine($"Server address: {address}");
Console.WriteLine($"Server port: {port}");
Console.WriteLine($"Working threads: {threads}");
Console.WriteLine($"Working clients: {clients}");
Console.WriteLine($"Working messages: {messages}");
Console.WriteLine($"Message size: {size}");
Console.WriteLine($"Seconds to benchmarking: {seconds}");
Console.WriteLine();
// Prepare a message to send
MessageToSend = new byte[size];
// Create a new service
var service = new Service(threads);
// Start the service
Console.Write("Service starting...");
service.Start();
Console.WriteLine("Done!");
// Create echo clients
var echoClients = new List<EchoClient>();
for (int i = 0; i < clients; ++i)
{
var client = new EchoClient(service, address, port, messages);
echoClients.Add(client);
}
TimestampStart = DateTime.UtcNow;
// Connect clients
Console.Write("Clients connecting...");
foreach (var client in echoClients)
client.ConnectAsync();
Console.WriteLine("Done!");
foreach (var client in echoClients)
while (!client.IsConnected)
Thread.Yield();
Console.WriteLine("All clients connected!");
// Wait for benchmarking
Console.Write("Benchmarking...");
Thread.Sleep(seconds * 1000);
Console.WriteLine("Done!");
// Disconnect clients
Console.Write("Clients disconnecting...");
foreach (var client in echoClients)
client.DisconnectAsync();
Console.WriteLine("Done!");
foreach (var client in echoClients)
while (client.IsConnected)
Thread.Yield();
Console.WriteLine("All clients disconnected!");
// Stop the service
Console.Write("Service stopping...");
service.Stop();
Console.WriteLine("Done!");
Console.WriteLine();
Console.WriteLine($"Errors: {TotalErrors}");
Console.WriteLine();
Console.WriteLine($"Total time: {Service.GenerateTimePeriod((TimestampStop - TimestampStart).TotalMilliseconds)}");
Console.WriteLine($"Total data: {Service.GenerateDataSize(TotalBytes)}");
Console.WriteLine($"Total messages: {TotalMessages}");
Console.WriteLine($"Data throughput: {Service.GenerateDataSize((long)(TotalBytes / (TimestampStop - TimestampStart).TotalSeconds))}/s");
if (TotalMessages > 0)
{
Console.WriteLine($"Message latency: {Service.GenerateTimePeriod((TimestampStop - TimestampStart).TotalMilliseconds / TotalMessages)}");
Console.WriteLine($"Message throughput: {(long)(TotalMessages / (TimestampStop - TimestampStart).TotalSeconds)} msg/s");
}
}
19
Source : Program.cs
with MIT License
from chronoxor
with MIT License
from chronoxor
static void Main(string[] args)
{
bool help = false;
string address = "239.255.0.1";
int port = 3333;
int threads = Environment.ProcessorCount;
int clients = 100;
int size = 32;
int seconds = 10;
var options = new OptionSet()
{
{ "h|?|help", v => help = v != null },
{ "a|address=", v => address = v },
{ "p|port=", v => port = int.Parse(v) },
{ "t|threads=", v => threads = int.Parse(v) },
{ "c|clients=", v => clients = int.Parse(v) },
{ "s|size=", v => size = int.Parse(v) },
{ "z|seconds=", v => seconds = int.Parse(v) }
};
try
{
options.Parse(args);
}
catch (OptionException e)
{
Console.Write("Command line error: ");
Console.WriteLine(e.Message);
Console.WriteLine("Try `--help' to get usage information.");
return;
}
if (help)
{
Console.WriteLine("Usage:");
options.WriteOptionDescriptions(Console.Out);
return;
}
Console.WriteLine($"Server address: {address}");
Console.WriteLine($"Server port: {port}");
Console.WriteLine($"Working threads: {threads}");
Console.WriteLine($"Working clients: {clients}");
Console.WriteLine($"Message size: {size}");
Console.WriteLine($"Seconds to benchmarking: {seconds}");
Console.WriteLine();
// Prepare a message to send
MessageToSend = new byte[size];
// Create a new service
var service = new Service(threads);
// Start the service
Console.Write("Service starting...");
service.Start();
Console.WriteLine("Done!");
// Create multicast clients
var multicastClients = new List<MulticastClient>();
for (int i = 0; i < clients; ++i)
{
var client = new MulticastClient(service, "0.0.0.0", address, port);
client.SetupMulticast(true);
multicastClients.Add(client);
}
TimestampStart = DateTime.UtcNow;
// Connect clients
Console.Write("Clients connecting...");
foreach (var client in multicastClients)
client.ConnectAsync();
Console.WriteLine("Done!");
foreach (var client in multicastClients)
while (!client.IsConnected)
Thread.Yield();
Console.WriteLine("All clients connected!");
// Wait for benchmarking
Console.Write("Benchmarking...");
Thread.Sleep(seconds * 1000);
Console.WriteLine("Done!");
// Disconnect clients
Console.Write("Clients disconnecting...");
foreach (var client in multicastClients)
client.DisconnectAsync();
Console.WriteLine("Done!");
foreach (var client in multicastClients)
while (client.IsConnected)
Thread.Yield();
Console.WriteLine("All clients disconnected!");
TimestampStop = DateTime.UtcNow;
// Stop the service
Console.Write("Service stopping...");
service.Stop();
Console.WriteLine("Done!");
Console.WriteLine();
Console.WriteLine($"Errors: {TotalErrors}");
Console.WriteLine();
TotalMessages = TotalBytes / size;
Console.WriteLine($"Total time: {Service.GenerateTimePeriod((TimestampStop - TimestampStart).TotalMilliseconds)}");
Console.WriteLine($"Total data: {Service.GenerateDataSize(TotalBytes)}");
Console.WriteLine($"Total messages: {TotalMessages}");
Console.WriteLine($"Data throughput: {Service.GenerateDataSize((long)(TotalBytes / (TimestampStop - TimestampStart).TotalSeconds))}/s");
if (TotalMessages > 0)
{
Console.WriteLine($"Message latency: {Service.GenerateTimePeriod((TimestampStop - TimestampStart).TotalMilliseconds / TotalMessages)}");
Console.WriteLine($"Message throughput: {(long)(TotalMessages / (TimestampStop - TimestampStart).TotalSeconds)} msg/s");
}
}
19
Source : Program.cs
with MIT License
from chronoxor
with MIT License
from chronoxor
static void Main(string[] args)
{
bool help = false;
int port = 8443;
var options = new OptionSet()
{
{ "h|?|help", v => help = v != null },
{ "p|port=", v => port = int.Parse(v) }
};
try
{
options.Parse(args);
}
catch (OptionException e)
{
Console.Write("Command line error: ");
Console.WriteLine(e.Message);
Console.WriteLine("Try `--help' to get usage information.");
return;
}
if (help)
{
Console.WriteLine("Usage:");
options.WriteOptionDescriptions(Console.Out);
return;
}
Console.WriteLine($"Server port: {port}");
Console.WriteLine();
// Create and prepare a new SSL server context
var context = new SslContext(SslProtocols.Tls12, new X509Certificate2("server.pfx", "qwerty"));
// Create a new HTTPS server
var server = new HttpsTraceServer(context, IPAddress.Any, port);
// server.OptionNoDelay = true;
server.OptionReuseAddress = true;
// 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
for (;;)
{
string line = Console.ReadLine();
if (string.IsNullOrEmpty(line))
break;
// Restart the server
if (line == "!")
{
Console.Write("Server restarting...");
server.Restart();
Console.WriteLine("Done!");
}
}
// Stop the server
Console.Write("Server stopping...");
server.Stop();
Console.WriteLine("Done!");
}
19
Source : Program.cs
with MIT License
from chronoxor
with MIT License
from chronoxor
static void Main(string[] args)
{
bool help = false;
int port = 8080;
var options = new OptionSet()
{
{ "h|?|help", v => help = v != null },
{ "p|port=", v => port = int.Parse(v) }
};
try
{
options.Parse(args);
}
catch (OptionException e)
{
Console.Write("Command line error: ");
Console.WriteLine(e.Message);
Console.WriteLine("Try `--help' to get usage information.");
return;
}
if (help)
{
Console.WriteLine("Usage:");
options.WriteOptionDescriptions(Console.Out);
return;
}
Console.WriteLine($"Server port: {port}");
Console.WriteLine();
// Create a new HTTP server
var server = new HttpTraceServer(IPAddress.Any, port);
// server.OptionNoDelay = true;
server.OptionReuseAddress = true;
// 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
for (;;)
{
string line = Console.ReadLine();
if (string.IsNullOrEmpty(line))
break;
// Restart the server
if (line == "!")
{
Console.Write("Server restarting...");
server.Restart();
Console.WriteLine("Done!");
}
}
// Stop the server
Console.Write("Server stopping...");
server.Stop();
Console.WriteLine("Done!");
}
19
Source : Program.cs
with MIT License
from chronoxor
with MIT License
from chronoxor
static void Main(string[] args)
{
bool help = false;
string address = "127.0.0.1";
int port = 2222;
int clients = 100;
int messages = 1000;
int size = 32;
int seconds = 10;
var options = new OptionSet()
{
{ "h|?|help", v => help = v != null },
{ "a|address=", v => address = v },
{ "p|port=", v => port = int.Parse(v) },
{ "c|clients=", v => clients = int.Parse(v) },
{ "m|messages=", v => messages = int.Parse(v) },
{ "s|size=", v => size = int.Parse(v) },
{ "z|seconds=", v => seconds = int.Parse(v) }
};
try
{
options.Parse(args);
}
catch (OptionException e)
{
Console.Write("Command line error: ");
Console.WriteLine(e.Message);
Console.WriteLine("Try `--help' to get usage information.");
return;
}
if (help)
{
Console.WriteLine("Usage:");
options.WriteOptionDescriptions(Console.Out);
return;
}
Console.WriteLine($"Server address: {address}");
Console.WriteLine($"Server port: {port}");
Console.WriteLine($"Working clients: {clients}");
Console.WriteLine($"Working messages: {messages}");
Console.WriteLine($"Message size: {size}");
Console.WriteLine($"Seconds to benchmarking: {seconds}");
Console.WriteLine();
// Prepare a message to send
MessageToSend = new byte[size];
// Create and prepare a new SSL client context
var context = new SslContext(SslProtocols.Tls12, new X509Certificate2("client.pfx", "qwerty"), (sender, certificate, chain, sslPolicyErrors) => true);
// Create echo clients
var echoClients = new List<EchoClient>();
for (int i = 0; i < clients; i++)
{
var client = new EchoClient(context, address, port, messages);
// client.OptionNoDelay = true;
echoClients.Add(client);
}
TimestampStart = DateTime.UtcNow;
// Connect clients
Console.Write("Clients connecting...");
foreach (var client in echoClients)
client.ConnectAsync();
Console.WriteLine("Done!");
foreach (var client in echoClients)
while (!client.IsHandshaked)
Thread.Yield();
Console.WriteLine("All clients connected!");
// Wait for benchmarking
Console.Write("Benchmarking...");
Thread.Sleep(seconds * 1000);
Console.WriteLine("Done!");
// Disconnect clients
Console.Write("Clients disconnecting...");
foreach (var client in echoClients)
client.Disconnect();
Console.WriteLine("Done!");
foreach (var client in echoClients)
while (client.IsConnected)
Thread.Yield();
Console.WriteLine("All clients disconnected!");
Console.WriteLine();
Console.WriteLine($"Errors: {TotalErrors}");
Console.WriteLine();
TotalMessages = TotalBytes / size;
Console.WriteLine($"Total time: {Utilities.GenerateTimePeriod((TimestampStop - TimestampStart).TotalMilliseconds)}");
Console.WriteLine($"Total data: {Utilities.GenerateDataSize(TotalBytes)}");
Console.WriteLine($"Total messages: {TotalMessages}");
Console.WriteLine($"Data throughput: {Utilities.GenerateDataSize((long)(TotalBytes / (TimestampStop - TimestampStart).TotalSeconds))}/s");
if (TotalMessages > 0)
{
Console.WriteLine($"Message latency: {Utilities.GenerateTimePeriod((TimestampStop - TimestampStart).TotalMilliseconds / TotalMessages)}");
Console.WriteLine($"Message throughput: {(long)(TotalMessages / (TimestampStop - TimestampStart).TotalSeconds)} msg/s");
}
}
19
Source : Program.cs
with MIT License
from chronoxor
with MIT License
from chronoxor
static void Main(string[] args)
{
bool help = false;
int port = 2222;
var options = new OptionSet()
{
{ "h|?|help", v => help = v != null },
{ "p|port=", v => port = int.Parse(v) }
};
try
{
options.Parse(args);
}
catch (OptionException e)
{
Console.Write("Command line error: ");
Console.WriteLine(e.Message);
Console.WriteLine("Try `--help' to get usage information.");
return;
}
if (help)
{
Console.WriteLine("Usage:");
options.WriteOptionDescriptions(Console.Out);
return;
}
Console.WriteLine($"Server port: {port}");
Console.WriteLine();
// Create and prepare a new SSL server context
var context = new SslContext(SslProtocols.Tls12, new X509Certificate2("server.pfx", "qwerty"));
// Create a new echo server
var server = new EchoServer(context, IPAddress.Any, port);
// server.OptionNoDelay = true;
server.OptionReuseAddress = true;
// 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
for (;;)
{
string line = Console.ReadLine();
if (string.IsNullOrEmpty(line))
break;
// Restart the server
if (line == "!")
{
Console.Write("Server restarting...");
server.Restart();
Console.WriteLine("Done!");
}
}
// Stop the server
Console.Write("Server stopping...");
server.Stop();
Console.WriteLine("Done!");
}
19
Source : Program.cs
with MIT License
from chronoxor
with MIT License
from chronoxor
static void Main(string[] args)
{
bool help = false;
string address = "127.0.0.1";
int port = 2222;
int clients = 100;
int size = 32;
int seconds = 10;
var options = new OptionSet()
{
{ "h|?|help", v => help = v != null },
{ "a|address=", v => address = v },
{ "p|port=", v => port = int.Parse(v) },
{ "c|clients=", v => clients = int.Parse(v) },
{ "s|size=", v => size = int.Parse(v) },
{ "z|seconds=", v => seconds = int.Parse(v) }
};
try
{
options.Parse(args);
}
catch (OptionException e)
{
Console.Write("Command line error: ");
Console.WriteLine(e.Message);
Console.WriteLine("Try `--help' to get usage information.");
return;
}
if (help)
{
Console.WriteLine("Usage:");
options.WriteOptionDescriptions(Console.Out);
return;
}
Console.WriteLine($"Server address: {address}");
Console.WriteLine($"Server port: {port}");
Console.WriteLine($"Working clients: {clients}");
Console.WriteLine($"Message size: {size}");
Console.WriteLine($"Seconds to benchmarking: {seconds}");
Console.WriteLine();
// Prepare a message to send
MessageToSend = new byte[size];
// Create and prepare a new SSL client context
var context = new SslContext(SslProtocols.Tls12, new X509Certificate2("client.pfx", "qwerty"), (sender, certificate, chain, sslPolicyErrors) => true);
// Create multicast clients
var multicastClients = new List<MulticastClient>();
for (int i = 0; i < clients; i++)
{
var client = new MulticastClient(context, address, port);
// client.OptionNoDelay = true;
multicastClients.Add(client);
}
TimestampStart = DateTime.UtcNow;
// Connect clients
Console.Write("Clients connecting...");
foreach (var client in multicastClients)
client.ConnectAsync();
Console.WriteLine("Done!");
foreach (var client in multicastClients)
while (!client.IsHandshaked)
Thread.Yield();
Console.WriteLine("All clients connected!");
// Wait for benchmarking
Console.Write("Benchmarking...");
Thread.Sleep(seconds * 1000);
Console.WriteLine("Done!");
// Disconnect clients
Console.Write("Clients disconnecting...");
foreach (var client in multicastClients)
client.DisconnectAsync();
Console.WriteLine("Done!");
foreach (var client in multicastClients)
while (client.IsConnected)
Thread.Yield();
Console.WriteLine("All clients disconnected!");
TimestampStop = DateTime.UtcNow;
Console.WriteLine();
Console.WriteLine($"Errors: {TotalErrors}");
Console.WriteLine();
TotalMessages = TotalBytes / size;
Console.WriteLine($"Total time: {Utilities.GenerateTimePeriod((TimestampStop - TimestampStart).TotalMilliseconds)}");
Console.WriteLine($"Total data: {Utilities.GenerateDataSize(TotalBytes)}");
Console.WriteLine($"Total messages: {TotalMessages}");
Console.WriteLine($"Data throughput: {Utilities.GenerateDataSize((long)(TotalBytes / (TimestampStop - TimestampStart).TotalSeconds))}/s");
if (TotalMessages > 0)
{
Console.WriteLine($"Message latency: {Utilities.GenerateTimePeriod((TimestampStop - TimestampStart).TotalMilliseconds / TotalMessages)}");
Console.WriteLine($"Message throughput: {(long)(TotalMessages / (TimestampStop - TimestampStart).TotalSeconds)} msg/s");
}
}
19
Source : Program.cs
with MIT License
from chronoxor
with MIT License
from chronoxor
static void Main(string[] args)
{
bool help = false;
int port = 2222;
int messagesRate = 1000000;
int messageSize = 32;
var options = new OptionSet()
{
{ "h|?|help", v => help = v != null },
{ "p|port=", v => port = int.Parse(v) },
{ "m|messages=", v => messagesRate = int.Parse(v) },
{ "s|size=", v => messageSize = int.Parse(v) }
};
try
{
options.Parse(args);
}
catch (OptionException e)
{
Console.Write("Command line error: ");
Console.WriteLine(e.Message);
Console.WriteLine("Try `--help' to get usage information.");
return;
}
if (help)
{
Console.WriteLine("Usage:");
options.WriteOptionDescriptions(Console.Out);
return;
}
Console.WriteLine($"Server port: {port}");
Console.WriteLine($"Messages rate: {messagesRate}");
Console.WriteLine($"Message size: {messageSize}");
Console.WriteLine();
// Create and prepare a new SSL server context
var context = new SslContext(SslProtocols.Tls12, new X509Certificate2("server.pfx", "qwerty"));
// Create a new echo server
var server = new MulticastServer(context, IPAddress.Any, port);
// server.OptionNoDelay = true;
server.OptionReuseAddress = true;
// Start the server
Console.Write("Server starting...");
server.Start();
Console.WriteLine("Done!");
// Start the multicasting thread
bool multicasting = true;
var multicaster = Task.Factory.StartNew(() =>
{
// Prepare message to multicast
byte[] message = new byte[messageSize];
// Multicasting loop
while (multicasting)
{
var start = DateTime.UtcNow;
for (int i = 0; i < messagesRate; i++)
server.Multicast(message);
var end = DateTime.UtcNow;
// Sleep for remaining time or yield
var milliseconds = (int)(end - start).TotalMilliseconds;
if (milliseconds < 1000)
Thread.Sleep(1000 - milliseconds);
else
Thread.Yield();
}
});
Console.WriteLine("Press Enter to stop the server or '!' to restart the server...");
// Perform text input
for (;;)
{
string line = Console.ReadLine();
if (string.IsNullOrEmpty(line))
break;
// Restart the server
if (line == "!")
{
Console.Write("Server restarting...");
server.Restart();
Console.WriteLine("Done!");
}
}
// Stop the multicasting thread
multicasting = false;
multicaster.Wait();
// Stop the server
Console.Write("Server stopping...");
server.Stop();
Console.WriteLine("Done!");
}
19
Source : Program.cs
with MIT License
from chronoxor
with MIT License
from chronoxor
static void Main(string[] args)
{
bool help = false;
string address = "127.0.0.1";
int port = 1111;
int clients = 100;
int messages = 1000;
int size = 32;
int seconds = 10;
var options = new OptionSet()
{
{ "h|?|help", v => help = v != null },
{ "a|address=", v => address = v },
{ "p|port=", v => port = int.Parse(v) },
{ "c|clients=", v => clients = int.Parse(v) },
{ "m|messages=", v => messages = int.Parse(v) },
{ "s|size=", v => size = int.Parse(v) },
{ "z|seconds=", v => seconds = int.Parse(v) }
};
try
{
options.Parse(args);
}
catch (OptionException e)
{
Console.Write("Command line error: ");
Console.WriteLine(e.Message);
Console.WriteLine("Try `--help' to get usage information.");
return;
}
if (help)
{
Console.WriteLine("Usage:");
options.WriteOptionDescriptions(Console.Out);
return;
}
Console.WriteLine($"Server address: {address}");
Console.WriteLine($"Server port: {port}");
Console.WriteLine($"Working clients: {clients}");
Console.WriteLine($"Working messages: {messages}");
Console.WriteLine($"Message size: {size}");
Console.WriteLine($"Seconds to benchmarking: {seconds}");
Console.WriteLine();
// Prepare a message to send
MessageToSend = new byte[size];
// Create echo clients
var echoClients = new List<EchoClient>();
for (int i = 0; i < clients; i++)
{
var client = new EchoClient(address, port, messages);
// client.OptionNoDelay = true;
echoClients.Add(client);
}
TimestampStart = DateTime.UtcNow;
// Connect clients
Console.Write("Clients connecting...");
foreach (var client in echoClients)
client.ConnectAsync();
Console.WriteLine("Done!");
foreach (var client in echoClients)
while (!client.IsConnected)
Thread.Yield();
Console.WriteLine("All clients connected!");
// Wait for benchmarking
Console.Write("Benchmarking...");
Thread.Sleep(seconds * 1000);
Console.WriteLine("Done!");
// Disconnect clients
Console.Write("Clients disconnecting...");
foreach (var client in echoClients)
client.Disconnect();
Console.WriteLine("Done!");
foreach (var client in echoClients)
while (client.IsConnected)
Thread.Yield();
Console.WriteLine("All clients disconnected!");
Console.WriteLine();
Console.WriteLine($"Errors: {TotalErrors}");
Console.WriteLine();
TotalMessages = TotalBytes / size;
Console.WriteLine($"Total time: {Utilities.GenerateTimePeriod((TimestampStop - TimestampStart).TotalMilliseconds)}");
Console.WriteLine($"Total data: {Utilities.GenerateDataSize(TotalBytes)}");
Console.WriteLine($"Total messages: {TotalMessages}");
Console.WriteLine($"Data throughput: {Utilities.GenerateDataSize((long)(TotalBytes / (TimestampStop - TimestampStart).TotalSeconds))}/s");
if (TotalMessages > 0)
{
Console.WriteLine($"Message latency: {Utilities.GenerateTimePeriod((TimestampStop - TimestampStart).TotalMilliseconds / TotalMessages)}");
Console.WriteLine($"Message throughput: {(long)(TotalMessages / (TimestampStop - TimestampStart).TotalSeconds)} msg/s");
}
}
19
Source : Program.cs
with MIT License
from chronoxor
with MIT License
from chronoxor
static void Main(string[] args)
{
bool help = false;
string address = "127.0.0.1";
int port = 8443;
int clients = 100;
int size = 32;
int seconds = 10;
var options = new OptionSet()
{
{ "h|?|help", v => help = v != null },
{ "a|address=", v => address = v },
{ "p|port=", v => port = int.Parse(v) },
{ "c|clients=", v => clients = int.Parse(v) },
{ "s|size=", v => size = int.Parse(v) },
{ "z|seconds=", v => seconds = int.Parse(v) }
};
try
{
options.Parse(args);
}
catch (OptionException e)
{
Console.Write("Command line error: ");
Console.WriteLine(e.Message);
Console.WriteLine("Try `--help' to get usage information.");
return;
}
if (help)
{
Console.WriteLine("Usage:");
options.WriteOptionDescriptions(Console.Out);
return;
}
Console.WriteLine($"Server address: {address}");
Console.WriteLine($"Server port: {port}");
Console.WriteLine($"Working clients: {clients}");
Console.WriteLine($"Message size: {size}");
Console.WriteLine($"Seconds to benchmarking: {seconds}");
Console.WriteLine();
// Prepare a message to send
MessageToSend = new byte[size];
// Create and prepare a new SSL client context
var context = new SslContext(SslProtocols.Tls12, new X509Certificate2("client.pfx", "qwerty"), (sender, certificate, chain, sslPolicyErrors) => true);
// Create multicast clients
var multicastClients = new List<MulticastClient>();
for (int i = 0; i < clients; i++)
{
var client = new MulticastClient(context, address, port);
// client.OptionNoDelay = true;
multicastClients.Add(client);
}
TimestampStart = DateTime.UtcNow;
// Connect clients
Console.Write("Clients connecting...");
foreach (var client in multicastClients)
client.ConnectAsync();
Console.WriteLine("Done!");
foreach (var client in multicastClients)
while (!client.IsConnected)
Thread.Yield();
Console.WriteLine("All clients connected!");
// Wait for benchmarking
Console.Write("Benchmarking...");
Thread.Sleep(seconds * 1000);
Console.WriteLine("Done!");
// Disconnect clients
Console.Write("Clients disconnecting...");
foreach (var client in multicastClients)
client.CloseAsync(100);
Console.WriteLine("Done!");
foreach (var client in multicastClients)
while (client.IsConnected)
Thread.Yield();
Console.WriteLine("All clients disconnected!");
TimestampStop = DateTime.UtcNow;
Console.WriteLine();
Console.WriteLine($"Errors: {TotalErrors}");
Console.WriteLine();
TotalMessages = TotalBytes / size;
Console.WriteLine($"Total time: {Utilities.GenerateTimePeriod((TimestampStop - TimestampStart).TotalMilliseconds)}");
Console.WriteLine($"Total data: {Utilities.GenerateDataSize(TotalBytes)}");
Console.WriteLine($"Total messages: {TotalMessages}");
Console.WriteLine($"Data throughput: {Utilities.GenerateDataSize((long)(TotalBytes / (TimestampStop - TimestampStart).TotalSeconds))}/s");
if (TotalMessages > 0)
{
Console.WriteLine($"Message latency: {Utilities.GenerateTimePeriod((TimestampStop - TimestampStart).TotalMilliseconds / TotalMessages)}");
Console.WriteLine($"Message throughput: {(long)(TotalMessages / (TimestampStop - TimestampStart).TotalSeconds)} msg/s");
}
}
19
Source : Program.cs
with MIT License
from chronoxor
with MIT License
from chronoxor
static void Main(string[] args)
{
bool help = false;
int port = 1111;
var options = new OptionSet()
{
{ "h|?|help", v => help = v != null },
{ "p|port=", v => port = int.Parse(v) }
};
try
{
options.Parse(args);
}
catch (OptionException e)
{
Console.Write("Command line error: ");
Console.WriteLine(e.Message);
Console.WriteLine("Try `--help' to get usage information.");
return;
}
if (help)
{
Console.WriteLine("Usage:");
options.WriteOptionDescriptions(Console.Out);
return;
}
Console.WriteLine($"Server port: {port}");
Console.WriteLine();
// Create a new echo server
var server = new EchoServer(IPAddress.Any, port);
// server.OptionNoDelay = true;
server.OptionReuseAddress = true;
// 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
for (;;)
{
string line = Console.ReadLine();
if (string.IsNullOrEmpty(line))
break;
// Restart the server
if (line == "!")
{
Console.Write("Server restarting...");
server.Restart();
Console.WriteLine("Done!");
}
}
// Stop the server
Console.Write("Server stopping...");
server.Stop();
Console.WriteLine("Done!");
}
19
Source : Program.cs
with MIT License
from chronoxor
with MIT License
from chronoxor
static void Main(string[] args)
{
bool help = false;
string address = "127.0.0.1";
int port = 3333;
int clients = 1;
int messages = 1000;
int size = 32;
int seconds = 10;
var options = new OptionSet()
{
{ "h|?|help", v => help = v != null },
{ "a|address=", v => address = v },
{ "p|port=", v => port = int.Parse(v) },
{ "c|clients=", v => clients = int.Parse(v) },
{ "m|messages=", v => messages = int.Parse(v) },
{ "s|size=", v => size = int.Parse(v) },
{ "z|seconds=", v => seconds = int.Parse(v) }
};
try
{
options.Parse(args);
}
catch (OptionException e)
{
Console.Write("Command line error: ");
Console.WriteLine(e.Message);
Console.WriteLine("Try `--help' to get usage information.");
return;
}
if (help)
{
Console.WriteLine("Usage:");
options.WriteOptionDescriptions(Console.Out);
return;
}
Console.WriteLine($"Server address: {address}");
Console.WriteLine($"Server port: {port}");
Console.WriteLine($"Working clients: {clients}");
Console.WriteLine($"Working messages: {messages}");
Console.WriteLine($"Message size: {size}");
Console.WriteLine($"Seconds to benchmarking: {seconds}");
Console.WriteLine();
// Prepare a message to send
MessageToSend = new byte[size];
// Create echo clients
var echoClients = new List<EchoClient>();
for (int i = 0; i < clients; i++)
{
var client = new EchoClient(address, port, messages);
echoClients.Add(client);
}
TimestampStart = DateTime.UtcNow;
// Connect clients
Console.Write("Clients connecting...");
foreach (var client in echoClients)
client.Connect();
Console.WriteLine("Done!");
foreach (var client in echoClients)
while (!client.IsConnected)
Thread.Yield();
Console.WriteLine("All clients connected!");
// Wait for benchmarking
Console.Write("Benchmarking...");
Thread.Sleep(seconds * 1000);
Console.WriteLine("Done!");
// Disconnect clients
Console.Write("Clients disconnecting...");
foreach (var client in echoClients)
client.Disconnect();
Console.WriteLine("Done!");
foreach (var client in echoClients)
while (client.IsConnected)
Thread.Yield();
Console.WriteLine("All clients disconnected!");
Console.WriteLine();
Console.WriteLine($"Errors: {TotalErrors}");
Console.WriteLine();
Console.WriteLine($"Total time: {Utilities.GenerateTimePeriod((TimestampStop - TimestampStart).TotalMilliseconds)}");
Console.WriteLine($"Total data: {Utilities.GenerateDataSize(TotalBytes)}");
Console.WriteLine($"Total messages: {TotalMessages}");
Console.WriteLine($"Data throughput: {Utilities.GenerateDataSize((long)(TotalBytes / (TimestampStop - TimestampStart).TotalSeconds))}/s");
if (TotalMessages > 0)
{
Console.WriteLine($"Message latency: {Utilities.GenerateTimePeriod((TimestampStop - TimestampStart).TotalMilliseconds / TotalMessages)}");
Console.WriteLine($"Message throughput: {(long)(TotalMessages / (TimestampStop - TimestampStart).TotalSeconds)} msg/s");
}
}
19
Source : Program.cs
with MIT License
from chronoxor
with MIT License
from chronoxor
static void Main(string[] args)
{
bool help = false;
int port = 3333;
var options = new OptionSet()
{
{ "h|?|help", v => help = v != null },
{ "p|port=", v => port = int.Parse(v) }
};
try
{
options.Parse(args);
}
catch (OptionException e)
{
Console.Write("Command line error: ");
Console.WriteLine(e.Message);
Console.WriteLine("Try `--help' to get usage information.");
return;
}
if (help)
{
Console.WriteLine("Usage:");
options.WriteOptionDescriptions(Console.Out);
return;
}
Console.WriteLine($"Server port: {port}");
Console.WriteLine();
// Create a new echo server
var server = new EchoServer(IPAddress.Any, port);
server.OptionReuseAddress = true;
// 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
for (;;)
{
string line = Console.ReadLine();
if (string.IsNullOrEmpty(line))
break;
// Restart the server
if (line == "!")
{
Console.Write("Server restarting...");
server.Restart();
Console.WriteLine("Done!");
}
}
// Stop the server
Console.Write("Server stopping...");
server.Stop();
Console.WriteLine("Done!");
}
19
Source : Program.cs
with MIT License
from chronoxor
with MIT License
from chronoxor
static void Main(string[] args)
{
bool help = false;
string address = "239.255.0.1";
int port = 3333;
int messagesRate = 1000000;
int messageSize = 32;
var options = new OptionSet()
{
{ "h|?|help", v => help = v != null },
{ "a|address=", v => address = v },
{ "p|port=", v => port = int.Parse(v) },
{ "m|messages=", v => messagesRate = int.Parse(v) },
{ "s|size=", v => messageSize = int.Parse(v) }
};
try
{
options.Parse(args);
}
catch (OptionException e)
{
Console.Write("Command line error: ");
Console.WriteLine(e.Message);
Console.WriteLine("Try `--help' to get usage information.");
return;
}
if (help)
{
Console.WriteLine("Usage:");
options.WriteOptionDescriptions(Console.Out);
return;
}
Console.WriteLine($"Server address: {address}");
Console.WriteLine($"Server port: {port}");
Console.WriteLine($"Messages rate: {messagesRate}");
Console.WriteLine($"Message size: {messageSize}");
Console.WriteLine();
// Create a new echo server
var server = new MulticastServer(IPAddress.Any, 0);
server.OptionReuseAddress = true;
// Start the server
Console.Write("Server starting...");
server.Start(address, port);
Console.WriteLine("Done!");
// Start the multicasting thread
bool multicasting = true;
var multicaster = Task.Factory.StartNew(() =>
{
// Prepare message to multicast
byte[] message = new byte[messageSize];
// Multicasting loop
while (multicasting)
{
var start = DateTime.UtcNow;
for (int i = 0; i < messagesRate; i++)
server.Multicast(message);
var end = DateTime.UtcNow;
// Sleep for remaining time or yield
var milliseconds = (int)(end - start).TotalMilliseconds;
if (milliseconds < 1000)
Thread.Sleep(1000 - milliseconds);
else
Thread.Yield();
}
});
Console.WriteLine("Press Enter to stop the server or '!' to restart the server...");
// Perform text input
for (;;)
{
string line = Console.ReadLine();
if (string.IsNullOrEmpty(line))
break;
// Restart the server
if (line == "!")
{
Console.Write("Server restarting...");
server.Restart();
Console.WriteLine("Done!");
}
}
// Stop the multicasting thread
multicasting = false;
multicaster.Wait();
// Stop the server
Console.Write("Server stopping...");
server.Stop();
Console.WriteLine("Done!");
}
19
Source : Program.cs
with MIT License
from chronoxor
with MIT License
from chronoxor
static void Main(string[] args)
{
bool help = false;
string address = "127.0.0.1";
int port = 8080;
int clients = 100;
int messages = 1000;
int size = 32;
int seconds = 10;
var options = new OptionSet()
{
{ "h|?|help", v => help = v != null },
{ "a|address=", v => address = v },
{ "p|port=", v => port = int.Parse(v) },
{ "c|clients=", v => clients = int.Parse(v) },
{ "m|messages=", v => messages = int.Parse(v) },
{ "s|size=", v => size = int.Parse(v) },
{ "z|seconds=", v => seconds = int.Parse(v) }
};
try
{
options.Parse(args);
}
catch (OptionException e)
{
Console.Write("Command line error: ");
Console.WriteLine(e.Message);
Console.WriteLine("Try `--help' to get usage information.");
return;
}
if (help)
{
Console.WriteLine("Usage:");
options.WriteOptionDescriptions(Console.Out);
return;
}
Console.WriteLine($"Server address: {address}");
Console.WriteLine($"Server port: {port}");
Console.WriteLine($"Working clients: {clients}");
Console.WriteLine($"Working messages: {messages}");
Console.WriteLine($"Message size: {size}");
Console.WriteLine($"Seconds to benchmarking: {seconds}");
Console.WriteLine();
// Prepare a message to send
MessageToSend = new byte[size];
// Create echo clients
var echoClients = new List<EchoClient>();
for (int i = 0; i < clients; i++)
{
var client = new EchoClient(address, port, messages);
// client.OptionNoDelay = true;
echoClients.Add(client);
}
TimestampStart = DateTime.UtcNow;
// Connect clients
Console.Write("Clients connecting...");
foreach (var client in echoClients)
client.ConnectAsync();
Console.WriteLine("Done!");
foreach (var client in echoClients)
while (!client.IsConnected)
Thread.Yield();
Console.WriteLine("All clients connected!");
// Wait for benchmarking
Console.Write("Benchmarking...");
Thread.Sleep(seconds * 1000);
Console.WriteLine("Done!");
// Disconnect clients
Console.Write("Clients disconnecting...");
foreach (var client in echoClients)
client.CloseAsync(1000);
Console.WriteLine("Done!");
foreach (var client in echoClients)
while (client.IsConnected)
Thread.Yield();
Console.WriteLine("All clients disconnected!");
Console.WriteLine();
Console.WriteLine($"Errors: {TotalErrors}");
Console.WriteLine();
TotalMessages = TotalBytes / size;
Console.WriteLine($"Total time: {Utilities.GenerateTimePeriod((TimestampStop - TimestampStart).TotalMilliseconds)}");
Console.WriteLine($"Total data: {Utilities.GenerateDataSize(TotalBytes)}");
Console.WriteLine($"Total messages: {TotalMessages}");
Console.WriteLine($"Data throughput: {Utilities.GenerateDataSize((long)(TotalBytes / (TimestampStop - TimestampStart).TotalSeconds))}/s");
if (TotalMessages > 0)
{
Console.WriteLine($"Message latency: {Utilities.GenerateTimePeriod((TimestampStop - TimestampStart).TotalMilliseconds / TotalMessages)}");
Console.WriteLine($"Message throughput: {(long)(TotalMessages / (TimestampStop - TimestampStart).TotalSeconds)} msg/s");
}
}
19
Source : SharpBypassUAC.cs
with MIT License
from FatRodzianko
with MIT License
from FatRodzianko
static void Main(string[] args)
{
//Setting the command line parameters
string bypreplaced = null;
byte[] encodedCommand = null;
bool help = false;
var options = new OptionSet()
{
{"b|bypreplaced=", "Bypreplaced to execute: eventvwr, fodhelper,computerdefaults, sdclt, slui", v => bypreplaced = v },
{"e|encodedCommand=", "Base64 encoded command to execute", v => encodedCommand = Convert.FromBase64String(v) },
{ "h|?|help", "Show this help", v => help = true }
};
try
{
options.Parse(args);
if (help || bypreplaced == null)
{
options.WriteOptionDescriptions(Console.Out);
System.Environment.Exit(1);
}
else if (encodedCommand == null)
{
Console.Write("Missing encoded command to execute\n\n");
options.WriteOptionDescriptions(Console.Out);
System.Environment.Exit(1);
}
else if (bypreplaced.ToLower().Equals("eventvwr"))
{
EventVwr eventvwr = new EventVwr(encodedCommand);
}
else if (bypreplaced.ToLower().Equals("fodhelper"))
{
FodHelper fodhelper = new FodHelper(encodedCommand);
}
else if (bypreplaced.ToLower().Equals("sdclt"))
{
Sdclt sdclt = new Sdclt(encodedCommand);
}
else if (bypreplaced.ToLower().Equals("slui"))
{
Slui slui = new Slui(encodedCommand);
}
else if (bypreplaced.ToLower().Equals("diskcleanup"))
{
DiskCleanup diskcleanup = new DiskCleanup(encodedCommand);
}
else if (bypreplaced.ToLower().Equals("computerdefaults"))
{
ComputerDefaults computerdefaults = new ComputerDefaults(encodedCommand);
}
}
catch (Exception e)
{
Console.WriteLine(" [x] {0}", e.Message);
}
}
19
Source : Program.cs
with MIT License
from FatRodzianko
with MIT License
from FatRodzianko
static void Main(string[] args)
{
var stopWatch = Stopwatch.StartNew();
//parse user options
string username = null;
string preplacedword = null;
string domain = null;
string outputfile = null;
bool ldapInSecure = false;
bool help = false;
bool searchForest = false;
int computerDate = 0;
var options = new OptionSet()
{
{"u|username=", "Username to authenticate as", v => username = v },
{"p|preplacedword=", "Preplacedword for the user", v => preplacedword = v },
{"d|domain=", "Fully qualified domain name to authenticate to", v => domain = v},
{"s|searchforest", "Enumerate all domains and forests", v => searchForest = true },
{"o|outputfile=", "Output to a CSV file. Please provided full path to file and file name.", v => outputfile = v },
{"i|insecure", "Force insecure LDAP connect if LDAPS is causing connection issues.", v => ldapInSecure = true },
{"pwdlastset=", "Filter computers based on pwdLastSet to remove stale computer objects. If you set this to 90, it will filter out computer objects whose pwdLastSet date is more than 90 days ago", (int v) => computerDate = v },
{ "h|?|help", "Show this help", v => help = true }
};
string currentDomain = null;
string searchBase = null;
DirectoryEntry adEntry = null;
DirectoryContext domainContext = null;
try
{
options.Parse(args);
if (help)
{
options.WriteOptionDescriptions(Console.Out);
System.Environment.Exit(1);
}
//Get the domain to use for authentication / enumeration
if (domain != null)
{
Console.WriteLine(format: "Using the specified domain {0}", domain);
currentDomain = domain;
}
else
{
try
{
currentDomain = System.DirectoryServices.ActiveDirectory.Domain.GetCurrentDomain().ToString();
Console.WriteLine("This is the current domain: " + currentDomain);
}
catch
{
Console.WriteLine("Unable to get domain from current user context. Please specify domain to user");
System.Environment.Exit(1);
}
}
// Set the search base after the domain is confirmed
searchBase = "LDAP://DC=" + currentDomain.Replace(".", ",DC=");
Console.WriteLine("The LDAP search base is " + searchBase);
string ldapConnect = null;
if (ldapInSecure)
{
ldapConnect = "LDAP://" + currentDomain;
}
else
{
ldapConnect = "LDAP://" + currentDomain + ":636";
Console.WriteLine(ldapConnect);
}
// Authenticate the user
if (username != null && preplacedword != null)
{
Console.WriteLine(format: "Credential information submitted. Attempting to authenticate to {0} as {1}", currentDomain, username);
Test_Credentials(username, preplacedword, currentDomain);
adEntry = new DirectoryEntry(ldapConnect, username, preplacedword);
domainContext = new DirectoryContext(DirectoryContextType.Domain, currentDomain, username, preplacedword);
}
else
{
adEntry = new DirectoryEntry(ldapConnect);
domainContext = new DirectoryContext(DirectoryContextType.Domain, currentDomain);
}
// Enumerate the current domain or all trusted domains
if (searchForest)
{
Console.WriteLine("You want to search all trusted domains and forests!");
//Get the current forest
string targetForest = Domain.GetDomain(domainContext).Forest.ToString();
var forestContext = new DirectoryContext(DirectoryContextType.Forest, targetForest, username, preplacedword);
var currentForest = Forest.GetForest(forestContext);
Console.WriteLine("The current forest is: " + currentForest);
//store all the domains enumerated through trusts
List<string> domainTrustArray = new List<string>();
domainTrustArray.Add(currentDomain);
//get all domain trusts
var domainTrusts = Domain.GetDomain(domainContext).GetAllTrustRelationships();
Console.WriteLine("\nEnumerating all domain trusts...");
foreach (TrustRelationshipInformation trust in domainTrusts)
{
// Only add trusts that are Bi or outbound so you can actually communicate with them
if ((trust.TrustDirection == TrustDirection.Bidirectional) || (trust.TrustDirection == TrustDirection.Outbound))
{
Console.WriteLine(trust.TargetName + " " + trust.TrustType + " " + trust.TrustDirection);
// If a forest trust is found, try and enumerate that forest trust further?
if (trust.TrustType == TrustType.Forest)
{
DirectoryContext rootDomainContext;
Domain rootDomain;
TrustRelationshipInformationCollection forestTrusts;
rootDomainContext = new DirectoryContext(DirectoryContextType.Domain, trust.TargetName);
rootDomain = Domain.GetDomain(rootDomainContext);
forestTrusts = rootDomain.GetAllTrustRelationships();
foreach (TrustRelationshipInformation forestTrust in forestTrusts)
if ((forestTrust.TrustType == TrustType.ParentChild) && ((forestTrust.TrustDirection == TrustDirection.Bidirectional) || (forestTrust.TrustDirection == TrustDirection.Outbound)))
{
Console.WriteLine(trust.TargetName + " " + trust.TrustType + " " + trust.TrustDirection);
domainTrustArray.Add(forestTrust.TargetName);
}
}
else
{
domainTrustArray.Add(trust.TargetName);
}
}
}
//start getting all forest trusts
Console.WriteLine("\nEnumerating all trusted forests...");
foreach (TrustRelationshipInformation trust in currentForest.GetAllTrustRelationships())
{
// Only add trusts that are Bi or outbound so you can actually communicate with them
if ((trust.TrustDirection == TrustDirection.Bidirectional) || (trust.TrustDirection == TrustDirection.Outbound))
{
Console.WriteLine(trust.TargetName + " " + trust.TrustType + " " + trust.TrustDirection);
// If a forest trust is found, try and enumerate that forest trust further?
if (trust.TrustType == TrustType.Forest)
{
DirectoryContext rootDomainContext;
Domain rootDomain;
TrustRelationshipInformationCollection forestTrusts;
rootDomainContext = new DirectoryContext(DirectoryContextType.Domain, trust.TargetName);
rootDomain = Domain.GetDomain(rootDomainContext);
forestTrusts = rootDomain.GetAllTrustRelationships();
foreach (TrustRelationshipInformation forestTrust in forestTrusts)
if ((forestTrust.TrustType == TrustType.ParentChild) && ((forestTrust.TrustDirection == TrustDirection.Bidirectional) || (forestTrust.TrustDirection == TrustDirection.Outbound)))
{
Console.WriteLine(trust.TargetName + " " + trust.TrustType + " " + trust.TrustDirection);
domainTrustArray.Add(forestTrust.TargetName);
}
}
else
{
domainTrustArray.Add(trust.TargetName);
}
}
}
//Set the variables needed to store users, groups, and domains
SearchResultCollection aclResults = null;
var allSids = new List<string>();
List<sidMap> sidMapList = new List<sidMap>();
List<SearchResult> resultList = new List<SearchResult>();
List<rbcd> rbcdList = new List<rbcd>();
//Enumerate through each domain discovered through trust relationships
Console.WriteLine(format:"\n{0} domains found. Listing domains", domainTrustArray.Count);
foreach (string trustedDomain in domainTrustArray)
{
Console.WriteLine(trustedDomain);
currentDomain = null;
currentDomain = trustedDomain;
//add if statement to see if username and preplacedword were supplied?
if (username != null && preplacedword != null)
{
adEntry = new DirectoryEntry("LDAP://" + currentDomain, username, preplacedword);
}
else
{
adEntry = new DirectoryEntry("LDAP://" + currentDomain);
}
Get_Users(adEntry, sidMapList, allSids, currentDomain);
Get_Groups(adEntry, sidMapList, allSids, currentDomain);
aclResults = Get_Computers(adEntry, sidMapList, allSids, currentDomain, aclResults, computerDate);
foreach (SearchResult acl in aclResults)
{
resultList.Add(acl);
}
}
Get_RBCD_ACLs(resultList, rbcdList, allSids, sidMapList);
if (outputfile != null)
{
bool saved = ExportCsv(rbcdList, outputfile);
if (!saved)
{
Console.WriteLine("\nUnable to save file. Printing to console instead.\n");
Print_Acls(rbcdList);
}
}
else
{
Print_Acls(rbcdList);
}
}
else
{
Console.WriteLine("Only searching current domain.");
var allSids = new List<string>();
List<sidMap> sidMapList = new List<sidMap>();
SearchResultCollection aclResults = null;
List<rbcd> rbcdList = new List<rbcd>();
List<SearchResult> resultList = new List<SearchResult>();
Get_Users(adEntry, sidMapList, allSids, currentDomain);
Get_Groups(adEntry, sidMapList, allSids, currentDomain);
aclResults = Get_Computers(adEntry, sidMapList, allSids, currentDomain, aclResults, computerDate);
foreach (SearchResult acl in aclResults)
{
resultList.Add(acl);
}
Get_RBCD_ACLs(resultList, rbcdList, allSids, sidMapList);
if (outputfile != null)
{
bool saved = ExportCsv(rbcdList, outputfile);
if (!saved)
{
Console.WriteLine("\nUnable to save file. Printing to console instead.\n");
Print_Acls(rbcdList);
}
}
else
{
Print_Acls(rbcdList);
}
}
}
catch (Exception e)
{
Console.WriteLine(" [x] {0}", e.Message);
}
Console.WriteLine("Execution time = {0} seconds", stopWatch.Elapsed.TotalSeconds);
}
19
Source : Program.cs
with MIT License
from idc
with MIT License
from idc
public static void Main(string[] args)
{
bool showHelp = false;
bool saveTables = false;
var options = new OptionSet()
{
{ "save-tables", "save tables", v => saveTables = v != null },
{ "h|help", "show this message and exit", v => showHelp = v != null },
};
List<string> extras;
try
{
extras = options.Parse(args);
}
catch (OptionException e)
{
Console.Write("{0}: ", GetExecutableName());
Console.WriteLine(e.Message);
Console.WriteLine("Try `{0} --help' for more information.", GetExecutableName());
return;
}
if (extras.Count < 1 || extras.Count > 2 || showHelp == true)
{
Console.WriteLine("Usage: {0} [OPTIONS]+ input_dec [output_dir]", GetExecutableName());
Console.WriteLine();
Console.WriteLine("Options:");
options.WriteOptionDescriptions(Console.Out);
return;
}
string inputPath = extras[0];
string baseOutputPath = extras.Count > 1 ? extras[1] : Path.ChangeExtension(inputPath, null) + "_unpack";
var fileNames = new Dictionary<uint, string>()
{
{ 3, "wlan_firmware.bin" },
{ 5, "secure_modules.bin" },
{ 6, Path.Combine("fs", "system.img" ) },
{ 8, Path.Combine("fs", "eap.img") },
{ 9, Path.Combine("fs", "recovery.img") },
{ 11, Path.Combine("fs", "preinst.img") },
{ 12, Path.Combine("fs", "system_ex.img") },
{ 34, "torus2_firmware.bin" },
{ 257, "eula.xml" },
{ 512, "orbis_swu.elf" },
{ 514, "orbis_swu.self" },
{ 3337, "cp_firmware.bin" },
};
var deviceNames = new Dictionary<uint, string>()
{
{ 1, "/dev/sflash0s0x32b" },
{ 13, "/dev/sflash0s0x32b" },
{ 32, "/dev/sflash0s0x32b" },
{ 36, "/dev/sflash0s0x32b" },
{ 40, "/dev/sflash0s0x32b" },
{ 42, "/dev/sflash0s0x32b" },
{ 44, "/dev/sflash0s0x32b" },
{ 46, "/dev/sflash0s0x32b" },
{ 2, "/dev/sflash0s0x33" },
{ 14, "/dev/sflash0s0x33" },
{ 33, "/dev/sflash0s0x33" },
{ 37, "/dev/sflash0s0x33" },
{ 43, "/dev/sflash0s0x33" },
{ 3, "/dev/sflash0s0x38" },
{ 34, "/dev/sflash0s0x38" },
{ 48, "/dev/sflash0s0x38" },
{ 4, "/dev/sflash0s1.cryptx2b" },
{ 35, "/dev/sflash0s1.cryptx2b" },
{ 38, "/dev/sflash0s1.cryptx2b" },
{ 39, "/dev/sflash0s1.cryptx2b" },
{ 45, "/dev/sflash0s1.cryptx2b" },
{ 5, "/dev/sflash0s1.cryptx3b" },
{ 10, "/dev/sflash0s1.cryptx40" },
{ 9, "/dev/da0x0.crypt" },
{ 11, "/dev/da0x1.crypt" },
{ 7, "/dev/da0x2" },
{ 8, "/dev/da0x3.crypt" },
{ 6, "/dev/da0x4b.crypt" },
{ 12, "/dev/da0x5b.crypt" },
{ 3328, "/dev/sc_fw_update0" },
{ 3336, "/dev/sc_fw_update0" },
{ 3335, "/dev/sc_fw_update0" },
{ 3329, "cd0" },
{ 3330, "da0" },
{ 16, "/dev/sbram0" },
{ 17, "/dev/sbram0" },
{ 19, "/dev/sbram0" },
{ 20, "/dev/sbram0" },
{ 21, "/dev/sbram0" },
{ 22, "/dev/sbram0" },
{ 18, "/dev/sbram0" },
{ 3337, "cpfirm" },
{ 15, "test" },
{ 769, "/update" },
{ 770, "/update" },
{ 782, "test" },
{ 783, "test" },
};
using (var input = File.OpenRead(inputPath))
{
var reader = new BinaryReader(input);
var magic = reader.ReadUInt32();
var unknown04 = reader.ReadUInt32();
var unknown08 = reader.ReadUInt16();
var flags = reader.ReadByte();
var unknown0B = reader.ReadByte();
var headerSize = reader.ReadUInt16();
var hashSize = reader.ReadUInt16();
var fileSize = reader.ReadInt64();
var entryCount = reader.ReadUInt16();
var hashCount = reader.ReadUInt16();
var unknown1C = reader.ReadUInt32();
var entries = new Entry[entryCount];
for (int i = 0; i < entryCount; i++)
{
Entry entry;
entry.Flags = reader.ReadUInt32();
input.Seek(4, SeekOrigin.Current);
entry.Offset = reader.ReadInt64();
entry.CompressedSize = reader.ReadInt64();
entry.UncompressedSize = reader.ReadInt64();
entries[i] = entry;
}
var tableEntries = new int[entryCount];
for (int i = 0; i < entryCount; i++)
{
tableEntries[i] = -2;
}
for (int i = 0; i < entryCount; i++)
{
var entry = entries[i];
if (entry.IsBlocked == false)
{
tableEntries[i] = -2;
}
else
{
if (((entry.Id | 0x100) & 0xF00) == 0xF00)
{
throw new InvalidOperationException();
}
int tableIndex = -1;
for (int j = 0; j < entryCount; j++)
{
if ((entries[j].Flags & 1) != 0)
{
if (entries[j].Id == i)
{
tableIndex = j;
break;
}
}
}
if (tableIndex < 0)
{
throw new InvalidOperationException();
}
if (tableEntries[tableIndex] != -2)
{
throw new InvalidOperationException();
}
tableEntries[tableIndex] = i;
}
}
for (int i = 0; i < entries.Length; i++)
{
var entry = entries[i];
var special = entry.Flags & 0xF0000000;
if (special == 0xE0000000 || special == 0xF0000000)
{
continue;
}
string name;
if (tableEntries[i] < 0)
{
if (fileNames.TryGetValue(entry.Id, out name) == true)
{
}
else if (deviceNames.TryGetValue(entry.Id, out name) == true)
{
var index = name.LastIndexOf('/');
name = name.Substring(index + 1);
name = entry.Id + "__" + name + ".bin";
name = Path.Combine("devices", name);
}
else
{
name = entry.Id + ".bin";
name = Path.Combine("unknown", name);
}
}
else
{
if (saveTables == false)
{
continue;
}
name = string.Format("{0} for {1}.bin", entry.Id, entries[tableEntries[i]].Id);
name = Path.Combine("tables", name);
}
var outputPath = Path.Combine(baseOutputPath, name);
var outputParentPath = Path.GetDirectoryName(outputPath);
if (string.IsNullOrEmpty(outputParentPath) == false)
{
Directory.CreateDirectory(outputParentPath);
}
using (var output = File.Create(outputPath))
{
ExtractEntry(input, i, entry, entries, output);
}
}
}
}
19
Source : Program.cs
with MIT License
from jfmaes
with MIT License
from jfmaes
public static void ShowHelp(OptionSet p)
{
Console.WriteLine("Usage:");
p.WriteOptionDescriptions(Console.Out);
}
19
Source : Program.cs
with GNU General Public License v3.0
from jfmaes
with GNU General Public License v3.0
from jfmaes
public static void ShowHelp(OptionSet p)
{
Console.WriteLine("\tEncryptor and (optional) stegano\n");
Console.WriteLine(" Usage:");
p.WriteOptionDescriptions(Console.Out);
}
19
Source : Program.cs
with GNU General Public License v3.0
from jfmaes
with GNU General Public License v3.0
from jfmaes
public static void ShowHelp(OptionSet p)
{
Console.WriteLine(" Usage:");
p.WriteOptionDescriptions(Console.Out);
}
19
Source : Program.cs
with GNU General Public License v3.0
from klezVirus
with GNU General Public License v3.0
from klezVirus
public static void ShowHelp(OptionSet p)
{
Console.WriteLine("Usage:");
p.WriteOptionDescriptions(Console.Out);
}
19
Source : Program.cs
with MIT License
from lucasg
with MIT License
from lucasg
static void ShowHelp(OptionSet p)
{
Console.WriteLine("Usage: demangler [options] FILE_OR_SYMBOL");
Console.WriteLine();
Console.WriteLine("Options:");
p.WriteOptionDescriptions(Console.Out);
}
19
Source : Program.cs
with MIT License
from lucasg
with MIT License
from lucasg
static void ShowHelp(OptionSet p)
{
Console.WriteLine("Usage: binarycache [options] <FILES_TO_LOAD>");
Console.WriteLine();
Console.WriteLine("Options:");
p.WriteOptionDescriptions(Console.Out);
}
19
Source : Program.cs
with BSD 3-Clause "New" or "Revised" License
from matterpreter
with BSD 3-Clause "New" or "Revised" License
from matterpreter
static void PrintUsage(OptionSet o)
{
Console.WriteLine("Usage: SHAPESHIFTER.exe [options]");
Console.WriteLine("\nOptions:");
o.WriteOptionDescriptions(Console.Out);
return;
}
19
Source : Program.cs
with GNU General Public License v3.0
from med0x2e
with GNU General Public License v3.0
from med0x2e
public static void showHelp(OptionSet p)
{
Console.WriteLine("\nUsage:");
p.WriteOptionDescriptions(Console.Out);
}
See More Examples