Я создал облачный сервер на Windows Server 2012 R2. При выполнении команды ping со своего компьютера на этот сервер пинг в среднем 60ms. Я написал простое клиент-серверное приложение на C#.
Клиент:
TcpClient client = new TcpClient();
client.Connect(IPAddress.Parse("адрес"), 10000);
NetworkStream stream = client.GetStream();
BinaryReader reader = new BinaryReader(stream);
BinaryWriter writer = new BinaryWriter(stream);
Stopwatch sw = new Stopwatch();
List<float> pings = new List<float>();
DateTime startTime = DateTime.Now;
Random random = new Random();
while(true)
{
byte[] packet = Enumerable.Repeat<byte>(100, random.Next(50, 100)).ToArray();
sw.Start();
writer.Write(packet.Length);
writer.Write(packet);
packet = reader.ReadBytes(reader.ReadInt32());
sw.Stop();
pings.Add((float)sw.Elapsed.TotalMilliseconds);
sw.Reset();
DateTime now = DateTime.Now;
if(now - startTime > TimeSpan.FromSeconds(1))
{
startTime = now;
Console.WriteLine(pings.Average());
pings.Clear();
}
}
Сервер:
TcpListener listener = new TcpListener(IPAddress.Any, 10000);
listener.Start();
TcpClient client = listener.AcceptTcpClient();
NetworkStream stream = client.GetStream();
BinaryReader reader = new BinaryReader(stream);
BinaryWriter writer = new BinaryWriter(stream);
while (true)
{
byte[] packet = reader.ReadBytes(reader.ReadInt32());
writer.Write(packet.Length);
writer.Write(packet);
}
При запуске сервера на Windows Server, а клиента у себя я получаю результаты пинга в среднем 200ms.
На мой взгляд проблема кроется в настройках Windows Server`а. Подскажите, кто знает.