Size: a a a

2020 October 08

⌬C

⌬ Richard Cooper in Go-go!
Toto Oshka
Если TCP идет на прием, то очень похоже на разбивку пакетов по отдельным частям
Не генерировал ваш клиент, посмотреть методы сходу по репе не возможно, вы собираете пакеты по длине в один?
ветка client_rework уже содержит сгенерериованные структуры и рабочие примеры. если что)
источник

TO

Toto Oshka in Go-go!
Просто пакет может придти не за один раз, а за два или три
источник

TO

Toto Oshka in Go-go!
Там по ~1500 байт деление идет, как я помню
источник

⌬C

⌬ Richard Cooper in Go-go!
источник

TO

Toto Oshka in Go-go!
странно, но ничего не открылось и такой папки там нету
источник

⌬C

⌬ Richard Cooper in Go-go!
Toto Oshka
Там по ~1500 байт деление идет, как я помню
я точно помню что капасити (или как это у tcp называется) 1300-1800 в зависимости от сети, но у меня была уверенность что дефолтный клиент заботливо отдает хоть мегабайт если дашь куда записать
источник

TO

Toto Oshka in Go-go!
⌬ Richard Cooper
я точно помню что капасити (или как это у tcp называется) 1300-1800 в зависимости от сети, но у меня была уверенность что дефолтный клиент заботливо отдает хоть мегабайт если дашь куда записать
к сожалению в Go это не предусмотрено
источник

TO

Toto Oshka in Go-go!
ни в сервере, ни в клиенте
источник

⌬C

⌬ Richard Cooper in Go-go!
Toto Oshka
странно, но ничего не открылось и такой папки там нету
сетевые инструменты вот тут https://github.com/xelaj/mtproto/blob/client_rework/network.go и вот тут https://github.com/xelaj/mtproto/blob/client_rework/network_io.go

сгенерированный клиент с структурами тут https://github.com/xelaj/mtproto/tree/client_rework/telegram
источник

TO

Toto Oshka in Go-go!
⌬ Richard Cooper
сетевые инструменты вот тут https://github.com/xelaj/mtproto/blob/client_rework/network.go и вот тут https://github.com/xelaj/mtproto/blob/client_rework/network_io.go

сгенерированный клиент с структурами тут https://github.com/xelaj/mtproto/tree/client_rework/telegram
пасибо, поглядим. Отпишу в личку, как будет время :)
источник

⌬C

⌬ Richard Cooper in Go-go!
Toto Oshka
к сожалению в Go это не предусмотрено
*нервные удивленные звуки*
источник

⌬C

⌬ Richard Cooper in Go-go!
Toto Oshka
пасибо, поглядим. Отпишу в личку, как будет время :)
спасибо за наводку)
источник

ВС

Владимир Столяров... in Go-go!
Toto Oshka
У TCP есть заголовок с длинной, собирать либо просто через отдельный слайс байтовый или прогонять через ring buffer, для перезаписи и переиспользования
так bufio.Scanner ж для подобного изобрели, там можно написать функцию, которая будет делить пакеты как надо
источник

TO

Toto Oshka in Go-go!
Владимир Столяров
так bufio.Scanner ж для подобного изобрели, там можно написать функцию, которая будет делить пакеты как надо
можно, почему нет
источник

⌬C

⌬ Richard Cooper in Go-go!
так чуваки, вы меня очень напрягли.

то есть, если я пишу conn.Read(buf), то я запишу в buf НЕ БОЛЬШЕ чем длина пакета? и если len(buf) > 1005001488 то даже в этом случае запишется максимум 1800 байт?
источник

TO

Toto Oshka in Go-go!
⌬ Richard Cooper
так чуваки, вы меня очень напрягли.

то есть, если я пишу conn.Read(buf), то я запишу в buf НЕ БОЛЬШЕ чем длина пакета? и если len(buf) > 1005001488 то даже в этом случае запишется максимум 1800 байт?
оно несколько раз придет, все верно
источник

TO

Toto Oshka in Go-go!
но последовательно
источник

⌬C

⌬ Richard Cooper in Go-go!
😱
источник

⌬C

⌬ Richard Cooper in Go-go!
пойду разбираться, кажется мы нашли проблему
источник

⌬C

⌬ Richard Cooper in Go-go!
если да это конечно конечная
источник