У меня есть сервер udp в другой сети, который прослушивает входящие пакеты.
У меня есть клиент (записанный в c#), который пытается отправлять 10 пакетов по 4000 байт каждую секунду.
Я тестирую множество клиентов с одного компьютера / сети.
В данный момент я тестирую 10 клиентов.
Это мой c# клиент:
class Program
{
static void Main(string[] args)
{
for (var index = 0; index < 10; index++)
{
var test = new UdpLocalServerUploaderService();
var th = new Thread(test.Start);
var intBytes = BitConverter.GetBytes(index);
th.Start(intBytes);
}
Console.ReadLine();
}
internal class UdpLocalServerUploaderService
{
private static UdpClient _udpClient;
private static string Uri = "my server";
private const int Port = 8200;
public void Start(object token)
{
var data = new byte[4000];
data[0] =( (byte[]) token)[0];
data[1] = ((byte[])token)[1];
data[2] = ((byte[])token)[2];
data[3] = ((byte[])token)[3];
Thread.Sleep(3000);
_udpClient = new UdpClient(Uri, Port);
while (true)
{
_udpClient.Send(data, data.Length);
Thread.Sleep((100));
}
}
}
}
Это мой сервер c#
public void StartListening(object port)
{
try
{
var ipep = new IPEndPoint(IPAddress.Any, (int)port);
var newsock = new UdpClient(ipep);
var sender = new IPEndPoint(IPAddress.Any, 0);
EvLogger?.Invoke(LoggerName.Info, "Listening");
// EvUdpStatus?.Invoke(true);
var data = newsock.Receive(ref sender);
while (true)
{
data = newsock.Receive(ref sender);
EvLogger?.Invoke(LoggerName.Debug, DateTime.Now + "\t" + BitConverter.ToInt32(data, 0));
}
}
catch (Exception ex)
{
EvLogger?.Invoke(LoggerName.Error, ex);
}
}
Я могу просматривать созданные журналы и видеть, что 10 пакетов принимаются для 10 клиентов каждую секунду.
Теперь, если Я "максимально" это до 100 клиентов, есть много пропущенных пакетов, и я изо всех сил пытаюсь даже ftp в мой сервер.
Теперь я могу предположить, что максимальное количество байтов (в секунду) я могу загрузить с у моего клиента заданная цифра, и максимальное количество байтов в секунду, которое я могу получить на своем сервере?
Можно ли сказать, что мне нужны клиенты в разных сетях для правильного тестирования максимального количества? байтов, которые могут быть получены на мой сервер?
Извините, если это все очевидно, но просто нужно, чтобы люди смотрели на точку зрения.
Спасибо