Здравствуйте, Serginio1, Вы писали:
S>Делаю своего рода RPC. Интересует скорость обмена по TCP/IP
S> Сейчас сорость обмена составляет 2000 вызовов в секунду.
S>Но чувствую, что скорость может быть больше.
S>Клиент такой
У вас новый Accept вызывается только после обработки данных от предыдущего клиента. Вообще, приём новых соединений и их обработка должны происходить в разных потоках.
Также, у вас используется конструкция:
var streamSize = br.ReadInt32();
var res = br.ReadBytes(streamSize);
var ms = new MemoryStream(res);
ms.Position = 0;
return new BinaryReader(ms);
...
var streamSize = br.ReadInt32();
var res = br.ReadBytes(streamSize);
var ms = new MemoryStream(res);
ms.Position = 0;
Нигде в ней не обрабатывается ситуация, если ReadBytes прочитал меньше, чем сказано, или просто отвалился по таймауту, из-за оборвавшегося соединения.