Обратите внимание, что отправка сохраненной вещи занимает всего 0,1 секунды
Я полагаю, это длительность 1 звонка на NetworkStream.Write
метод
Простой тест, отправка данных нашлейф.Это стоит около 300 мс на моем ПК и 50 мс без отправки данных.Очевидно, причина в скорости вашей сети.
Цикл достаточно быстрый
//Local server
Socket server = new Socket(SocketType.Stream, ProtocolType.Tcp);
Socket peer = null;
server.Bind(new IPEndPoint(IPAddress.Any, 29999));
server.Listen(50);
server.BeginAccept(ar =>
{
peer = server.EndAccept(ar);
byte[] buf = new byte[16 * 16 * 16 + 3];
while (peer.Connected)
peer.Receive(buf);
},
null);
//Client
Socket client = new Socket(SocketType.Stream, ProtocolType.Tcp);
client.Connect(new IPEndPoint(IPAddress.Loopback, 29999));
var networkStream = new NetworkStream(client);
//Loop
byte[] sendBytes = new byte[16 * 16 * 16 + 3];
int current = 0;
Stopwatch sw = Stopwatch.StartNew();
for (int i = 0; i < 16; i++)
for (int j = 0; j < 16; j++)
for (int k = 0; k < 16; k++)
{
sendBytes[current++] = (byte)i;
sendBytes[current++] = (byte)j;
sendBytes[current++] = (byte)k;
for (int x = 0; x < 16; x++)
for (int y = 0; y < 16; y++)
for (int z = 0; z < 16; z++)
sendBytes[current++] = getItem(x + i * 16, y + j * 16, z + k * 16);
networkStream.Write(sendBytes, 0, current);
current = 0;
}
sw.Stop();
Console.WriteLine(sw.ElapsedMilliseconds);
//Clean works
client.Close();
peer.Close();
server.Close();