Size: a a a

Golang Developers — русскоговорящее сообщество

2020 June 24

А

Анатолий in Golang Developers — русскоговорящее сообщество
первую вызываешь в main
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
вторую где надо использовать
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
Вообще в echo можно создавать свои контексты
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
ты можешь создать свой контекст с полем db как в примере
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
в main все инициализировать и запихнуть его в echo
источник

JD

John Doe in Golang Developers — русскоговорящее сообщество
Анатолий
в main все инициализировать и запихнуть его в echo
Спасибо буду пробовать
источник

JD

John Doe in Golang Developers — русскоговорящее сообщество
@xff00ff Извини а ты можешь подсказать для чего это
источник

JD

John Doe in Golang Developers — русскоговорящее сообщество
я выделил
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
John Doe
@xff00ff Извини а ты можешь подсказать для чего это
Это преобразование одного типа в другой, приходит тебе обычный контекст и ты его преобразуешь в свой
источник
2020 June 25

e

ep4sh in Golang Developers — русскоговорящее сообщество
Переписываю сканер портов из одной книги. У меня есть функция worker и каждый раз почему-то я получаю разные результаты, тестируя на своем хосте
https://paste.ubuntu.com/p/s2r2zshKjZ/
это связано с дефолтным TCP - таймаутом?

ps. если я задам таймаут через DialTimeout("tcp, host, 30*time.Seconds) - все горутины прекращают работу в конце таймаута и программа завершается - как с этим быть?
источник

VS

Vladimir Smagin in Golang Developers — русскоговорящее сообщество
почитай про waitgroup
источник

VS

Vladimir Smagin in Golang Developers — русскоговорящее сообщество
горутины всегда будут отдавать разный результат потому, что одна может завершиться быстрее другой
источник

VS

Vladimir Smagin in Golang Developers — русскоговорящее сообщество
если ты такой новичок, то вместо waitgroup используй каналы чтобы узнавать когда же завершилась последняя горутина чтобы выйти
источник

VS

Vladimir Smagin in Golang Developers — русскоговорящее сообщество
тебе, кстати, никто не мешает формировать массив мапов из результатов горутин и в конце сортировать его
источник

e

ep4sh in Golang Developers — русскоговорящее сообщество
Vladimir Smagin
если ты такой новичок, то вместо waitgroup используй каналы чтобы узнавать когда же завершилась последняя горутина чтобы выйти
Отлично, я как раз использовал каналы представленные в книге, и даже пробовал добавить waitgroup в worker() и ожидание в main горутине. Результаты не меняются. Вернее наоборот - они меняются, к тому же многие окрытые порты просто скипаются.
Вот полный исходник:
https://paste.ubuntu.com/p/R2zNyJfvMB/
источник

VS

Vladimir Smagin in Golang Developers — русскоговорящее сообщество
значит чет не так делаешь
источник

VS

Vladimir Smagin in Golang Developers — русскоговорящее сообщество
у тебя в main() нет ожидания конца работы горутин
источник

VS

Vladimir Smagin in Golang Developers — русскоговорящее сообщество
в общем-то неудивительно, что результаты выпадают
источник

e

ep4sh in Golang Developers — русскоговорящее сообщество
но там есть каналы
источник