

Vladimir
11.11.2017
00:23:35
Мужики, подскажите как асинхронно работать с net.ListenUDP ?
а чего она должна слушать? Она ведь ничего не слушает , а лишь говорит системе что с этого момента все UDP пакеты на порт xxx отправлять данному приложению! Вы понимаете что у UDP нет начала сессии нет ее окончания нет деления на привычные сокеты(где каждый client имеет свой хандл обработки) просто огромный поток который будет валиться на наше приложение ...а вы обязаны как картошку рассортировывать ,так как сложная асинхронная модель это машина состояний и вы обязаны переключать эти состояния для каждого клиента! А по поводу асинхронности ... поставьте в рутину чтение из коннекта и все 8) ... в итоге у вас получится один хандел на все пакеты и один зарутиненный UDPreader , не думаю что мои слова вам помогут так как программирование UDP сложнее , чем к примеру TCP, но все же смотрите примеры и создавайте свое решение! Если же решили серьезно заниматься UDP то начинать нужнo c (citforum.ru\nets\tcp\udpspec.shtml) Потому как все Golang UDP примеры по уровню ниже "Hello world" , ниже я дал ссылку на пример которая даже при незапущенном сервере устанавливает коннект ... наверно с марсом!
https://varshneyabhi.wordpress.com/2014/12/23/simple-udp-clientserver-in-golang/


Юрий
11.11.2017
06:17:43
Спасибо :) Представление о том как работает udp у меня есть.
Сформирую что я хочу :)
Есть служба на основе sys\windows\svc. В ней бесконечный цикл который в select получает команды из вне. Хочу еще один канал в котором буду посылать сообщения что magicpacket получен(и комп выключить). Вот собственно и вопрос как это лучше сделать.
Я думаю гороутина в цикле listenUDP и команду в канал.
Программа для себя ) го только учу.

Google

Vladimir
11.11.2017
06:46:13
Программа для себя ) го только учу.
ну если уже писали UDP-сервер на другом языке то проблем думаю не будет! А если не писали то где рутина и где listenUDP не самое главное и уж точно не самое сложное!? И забудьте вы про listenUDP как и про Dial за ними нет смыла главное это риды и райты (ЭТО UDP ? у него нет начала и нет конца , у листена есть маленький смысл относящийся к подсистеме ввода вывода ОС и bind но об этом уже писал выше) А если протокол не имеет начала и конца ... а клиенты различны ... то мало того что вы должны отсепарировать клиентов , дак еще и придумать чтото что дает начало и конец? да еще и научиться делать CLOSE этому безобразию, вобщем удачи ... если совсем тяжко будет пишите личкой кину код!
P.S. // код самого тупейшего многпользовательского TCP сервера около 30-ти строк
код самого тупейшего многопользовательского UDP сервера около 200-т строк


Юрий
11.11.2017
07:43:23
Я не пишу что-то сложное. Из примера что у вас в ссылке я взял серверный кусочек. В бесконечном for читаю из буфера пока не прилетит пакет особого вида(wake-on-lan). Прилетел посылаю строку в канал, в сервисе получаю и отправляю машину в ребут.
Я не за компом, поэтому показать ничего не могу ) вечером если будут проблемы обращусь.)

BlastPy
11.11.2017
09:14:31
report

Igor
11.11.2017
09:15:08
report
тебя тоже под бан пустить?

BlastPy
11.11.2017
09:15:23

Igor
11.11.2017
09:15:28

BlastPy
11.11.2017
09:15:29
добавьте банофбот
и все

Igor
11.11.2017
09:16:02

BlastPy
11.11.2017
09:16:35
если я пишу репорт и делаю форварл по твоему я админ ?

Google

BlastPy
11.11.2017
09:17:07

Igor
11.11.2017
09:17:09
по-моему ты новичок в телеграме, если делаешь форварды. потому что следующий раз тоже улетишь с пометкой спама

BlastPy
11.11.2017
09:17:34
вообще пох.
во втором канале ся движуха

Igor
11.11.2017
09:17:41
а создатель уже 3 месяца как не заходил

Alexey
11.11.2017
09:45:46

Mike
11.11.2017
09:57:19

Igor
11.11.2017
09:57:32

Mike
11.11.2017
09:57:47
Ну с этим я не спорю)

xPushkin
11.11.2017
10:27:11
Друзья, я правильно понимаю, что эти две строки равнозначны?
a := A{}
var a A

Bogdan
11.11.2017
10:29:15
в компиляторе все оптимизации включены по дефолту? или какие-то еще можно директивами включить?

BlastPy
11.11.2017
10:30:18

Alexey
11.11.2017
10:41:00

?
11.11.2017
11:13:27

Alexey
11.11.2017
11:35:45

BlastPy
11.11.2017
11:38:06
а почему 2 хз
он более активн

Like
11.11.2017
13:17:38
Добрый день
Как обрабатывать "ошибки" при работе с базой? В частности, unique поля
Вручную проверять перед добавлением что ли? :(
P.s: юзаю gorm

Google

Alex
11.11.2017
13:21:05
Как ты эту валидацию сделаешь - уже другой вопрос
По хорошему "плохие" данные надо отбрасывать до самого взаимодействия с БД

Alexander
11.11.2017
13:23:06
http://jinzhu.me/gorm/advanced.html#error-handling

Like
11.11.2017
13:24:29
Это называется валидацией
https://github.com/gin-gonic/gin/blob/master/examples/custom-validation/server.go
Не очень хочется что-то типа такого юзать

Alex
11.11.2017
13:25:56
Валидацию по-разному можно делать, вопрос в количестве усилий и кода, который придется писать

Mikhail
11.11.2017
13:36:21
Господа. Где у нас тут вакансии кидают гоферам?

Admin
ERROR: S client not available

Alexander
11.11.2017
13:37:38

Mikhail
11.11.2017
13:37:46
спасибо

Юрий
11.11.2017
19:52:03
кстати, а почему в https://tour.golang.org мир по китайски ? :)

عاصم بن حارث
11.11.2017
19:54:57
?

Юрий
11.11.2017
19:55:51
)

I
11.11.2017
20:10:11
Действительно, про го.

SchweD
12.11.2017
08:26:30
/report Sheriff

Lil
12.11.2017
10:35:06
Добрый день,здесь кто-нибудь в Делфи шарит?

Aleksey
12.11.2017
10:43:48

Sergey
12.11.2017
10:54:14
/voteban

Google

Aleksey
12.11.2017
10:59:11
Д — Дружелюбное сообщество :D

Yuri
12.11.2017
11:00:26
/voteban

Анна
12.11.2017
11:00:56
/voteban

Nikita
12.11.2017
11:11:45
/voteban

Евгений
12.11.2017
11:29:54
Доброго дня, всем! Нужно сгенерировать xml таг такого вида: <tag_name attr1="val1" /> через структурные теги, как это правильно сделать? По-умолчанию он закрывается </tag_name>

Александр
12.11.2017
12:40:10
Подскажите как называется технология, которая как сокеты, только отправляет данные в одну точку (на клиента)?

nezorflame
12.11.2017
14:07:57

Nikolay
12.11.2017
14:11:05

nezorflame
12.11.2017
14:11:13
lmgtfy.com
отличная вещь

Андрюха (Ren)
12.11.2017
16:24:24
/voteban