Думаю далее если вызвать
send(packet.header_and_data);
то почему в данном случаешь думаешь алгоритм отложенных подрверждений не сработает? подверждение наверняка отложится. только вот приложение об этом не узнает. если удаленная сторона пошлет ответ, то подверждение придет, если ответа не надо, то и ждать подверждения тоже незачем. ушло и ушло... когда придет подверждение тогда придет, на приложение очевидно этот факт не дейсвует
Kloun
> бинарный вид (другими словами двоичный), я понимаю только как представление
> данных из памяти ввиде двоичного кода, т.е. в двоичной системе счисления. как
> правило это понятие используется только для того чтобы разделить между собой
> текстовые и бинарные (т.е. не текстовые, а произвольные) данные. так вот по
> твоей логике получается, что программа оперирует текстовыми данными? С трудом в
> это верится =))
> я с шарпом не работал. что за функции ты имел ввиду, кооторые "переводят данные
> в бинарный вид" ?
Понятно что машина оперирует только с двоичным кодом, а не с текстовым. Просто в шарпе нет такого как в С например:
к примеру int a; Тут я могу просто взять область памяти где распологается целое и отослать это, а в C# указателей нет и придется тот же int a копировать как в область массива в двоичном виде.
travnik
> придется тот же int a копировать как в область массива в двоичном виде
а не знаешь, можно ли это дело ускорить, или как нибудь по другому делать?
travnik
> а в C# указателей нет и придется тот же int a копировать как в область массива
> в двоичном виде.
ппц. ИМХО C# не подходит для реализации сетевой части программы. проще наверно вынести в длл написанную на плюсах всю кухню с протоколом.
vizgl
> а не знаешь, можно ли это дело ускорить, или как нибудь по другому делать?
в шарпе по другому никак и в ручную это намного быстрее делается чем функциями которые данный язык предлагает
Kloun
> ппц. ИМХО C# не подходит для реализации сетевой части программы. проще наверно
> вынести в длл написанную на плюсах всю кухню с протоколом.
Пока буду на шарпе делать, заменить протокол можно и потом будет, щас и без этого полно всего писать.
travnik
а клиент на шарпе тоже будет?
зы. "заменить потом" - это либо никогда, либо это очень болезненно для проекта!
travnik
а вручную это как получается? если шарп не дает возможности оперировать с памятью?
Да клиент тоже на шарпе! Вот такой вот извращенец) Это мое первое сетевое приложение и пишу с целью научиться.
Протокол заменить болезнено никак не будет, т.к. он полностью абстрагирован от всего приложения.
Кстати Шарп для клиента подходит без проблем, особых нагрузок он не делает, графика 2D.
travnik
> Протокол заменить болезнено никак не будет, т.к. он полностью абстрагирован от
> всего приложения.
диффузия знаешь что такое? вот по мере роста проекта между модулями происходит такое взаимопроникновение, что иногда даже рефракторинг может не спасти. =))
Kloun, да похорошему уже давно пора опять все заново писать)))
Пока так добью, потом на с++ сяду
>вот по мере роста проекта между модулями происходит такое взаимопроникновение, что иногда даже рефракторинг может не спасти.
Думаю, потому этап планирования и разработки архитектуры и считается одним из основных? )))
slava_mib
> Думаю, потому этап планирования и разработки архитектуры и считается одним из
> основных? )))
наверно да =))) когда я начинал проект, я был еще совсем неопытен (это я сейчас это понимаю, тогда мне тоже казалось, что я много знаю и много умею)
Мое имхо - для многих мморпг 1..2 пакета в секуду более чем достаточно, иногда и меньше, это к вопросу о частоте отправки.
Например экспериментально можно подтвердить, что мультиплеер с танчиками можно сделать с интервалом 1 пакет за 3 сек.
пошаговые танчики?
Damp
Все зависит от специфики проекта. Какой-нить WoW явно не потянет при таком времени апдейта. Будет пошаговая стратегия в реальном времени)) Для каких-нить шашек-шахмат естественно не нужно передавать состояние (лучше вобще не состояние передавать) 50 раз в секунду.
Тема в архиве.