игру CS:GO, ведь там ежесекундно отправляется over9000 пакетов данных
Даже космическая ракета вряд ли ежесекундно отправляет over9000 "пакетов" телеметрии. :)
Ни клиент CS:GO, ни сервер CS:GO на один сокет, и близко столько не передает и не принимает, какие-то тысячи можно насчитать только если пакетами считать TCP/UDP-сегменты, но это уровень ОС, а вас интересуют не эти пакеты, а буферы
byte[]
, и если скажем подсчитать вызовы Berkeley's send() в секунду то не будет и сотен и даже десятков может не быть.
Собственно весь TCP-поток игры вы можете посмотреть с помощью сниффера, но вы же не дружите с инструментами отладки как я помню, поэтому можете еще пару нулей дописать к числу в вашей фантазии. :)
Пакует ли клиент каждый пакет через новый экземпляр класса для упаковки?
Разумеется, да, как и с HTTP-запросами, классы вроде
System.Net.HttpWebRequest
в принципе являются моделью данных пакета вроде POGO, а всю "грязную работу" с буфером
byte[]
класс берет на себя, это повсеместная практика что за вопросы.
Читает ли каждый пакет сервер через новый экземпляр класса для чтения?
Аналогично.
Либо это все происходит через 1 класс?
Да вообще всю игру пишут в одном классе а новый класс создают только когда IDE вместо номеров строчек начинает выдавать числа с экспонентой!
Попробуйте написать просто надежный клиент-сервер без всякого payload и обойтись 1 классом там и там, мой первый был именно таким и это ужас, хотя кому я...)))
С наступающим Вас.
Если только с наступающим трудовым днем, я завтра работать буду в отличие от таких как вы.))))