
Alexander
06.06.2018
15:43:06
Я не понял, какое отношение ktor имеет к udp
В принципе можно устроить перессылку пакетов с http заголовками по upd. Когда-то так даже делали.

Bogdan
06.06.2018
15:44:22

Alexander
06.06.2018
15:45:33
Можно конечно. Просто ktor cам по себе не работает как сервер, он делается поверх сервера. Использовать его для передачи чего-то кроме http пакетов - очень странно.

Google

Andrey
06.06.2018
15:45:47
ktor имеет возможность работы с сокетами, с tcp или udp, я конечно понимаю что гдето внутри netty
в чем странность? Хотел получить нормальную обертку над стандартными сокетами

Alexander
06.06.2018
15:51:01
Ktor заточе под web. Делать на нем что-то низкоуровневое как-то очень странно.

Наиль
06.06.2018
15:54:22
Почему это он заточен под web? Где говорится об этом?

dimiii
06.06.2018
15:55:41
По какому прикладному протоколу будет общение?

Andrey
06.06.2018
16:01:24
да я прошел по этому туториалу, но оказалось что в случае udp() там работа отличается и в результата я имею BoundDatagrammSocket у которого есть метод send который принимает объект типа Datagram, и я не понимаю как мне собрать такой объект.

Alexander
06.06.2018
16:01:39
Ну я его не тыкал палкой какое-то время. Когда я в последний раз смотрел, там UDP опции вообще не было. Но вообще, работа с UDP протоколом вообще довольно сильно отличается от TCP.

dimiii
06.06.2018
16:04:35

Alexander
06.06.2018
16:06:37
Вот я о том же
В голом netty нет корутин, но там довольно легко все прикрутить.
Проблема с UDP в том, что нет гарантии доставки сообщения, поэтому нет такого понятия как установленный канал связи, ты просто кидаешь сообщение в сеть и надеешься, что кто-нибудь его поймает.

dimiii
06.06.2018
16:08:38
Вот я о том же
Кстати, думаю и без корутин можно обойтись, вряд ли там узкое место

Google

Alexander
06.06.2018
16:09:17
Ну тут вопрос удобства. RecieveChannel - очень удобная штука даже когда нет речи о производительности
Но в него легко все завернуть

dimiii
06.06.2018
16:09:32
Так что за протокол?

Andrey
06.06.2018
16:10:25
протокол? UDP или я не понял вашего вопроса

Alexander
06.06.2018
16:10:57
Это транспортного уровня. Какой протокол логического уровня? Чего в датаграммах?

Andrey
06.06.2018
16:13:52
набор символов в кoдировке utf8

Alexander
06.06.2018
16:15:02
То есть самоделка. Я бы скзал, что использовать ktor для этого - это забивать гвозди известным научным прибором.

Andrey
06.06.2018
16:15:15
конечно самоделка

Alexander
06.06.2018
16:15:45
А для чего исползуется, если не секрет (размер сети и все такое)?

Andrey
06.06.2018
16:16:13
наверное секрет)
Ладно я все понял, пойду netty попробую

Alexander
06.06.2018
16:17:25
Просто я сталкивался с необходимостью использовать udp только для обнаружения железок в локальной сетке. В этом случае лучше, чем просто голый сокет не придумаешь
Вот сходу нашел про netty: https://habr.com/sandbox/108498/
Но для маленьких сетей и низких загрузок, я бы и с ним не заморачивался.

Andrew
06.06.2018
16:26:15
Ещё можно вполне глянуть на Java NIO и его DatagramChannel. kotlinx-corutines-nio вам, похоже, из коробки не поможет, но им можно повдохновляться при желании.

Aleksandr
06.06.2018
17:39:03
а можно как-то лямбду превратить в java.utils.functions.Function ?
надо подсунуть nashorn-у а он не может вызвать
а все
сам дурак

Mikhail
06.06.2018
18:14:25
кстати, видел когда-то реквест слайсов в котлине. можно ведь их эмулировать с помощью экстеншнов и интрейнджей
operator fun <T> List<T>.get(slice: IntRange) : List<T> {
return this.subList(slice.first, slice.last)
}
val b = listOf(1, 2, 3, 4)
b[1..2]
> [2]
b[1..3]
> [2, 3]

Google

Boris
06.06.2018
18:16:10
Разве в стдлибе нету такого экстеншена?

OlegKrikun
06.06.2018
18:18:17
тыц https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/slice.html

Mikhail
06.06.2018
19:53:10
https://twitter.com/TFBenchmarks/status/1004446690001108992

Quantum Harmonizer
06.06.2018
20:04:03
https://t.me/TheDailyKotlin/56
Интересно, Дмитрий сказал, что дефолтные методы в интерфейсах работают чуть сложнее, чем copy-paste в реализовывающий класс.
Кто что-нибудь знает?

Leonid
06.06.2018
20:05:29
Декомпильни байткод в джаву, сразу все понятно станет

Quantum Harmonizer
06.06.2018
20:06:16

Alexey
07.06.2018
06:52:32
Через udp получается значительно больше данных гнать чем через tcp

Boris
07.06.2018
07:44:27

Alexey
07.06.2018
07:45:19
Если вдруг кому интересно
https://github.com/real-logic/aeron

Quantum Harmonizer
07.06.2018
07:58:54

Za
07.06.2018
08:20:06
Всем привет
Подскажите, пожалуйста, как вызвать getSystemService()?

Quantum Harmonizer
07.06.2018
08:21:18

Za
07.06.2018
08:22:18
Ну это понятно. Ошибку выдает. Мол "не знаю, о чем ты, человек"

Андрей
07.06.2018
08:24:47

Za
07.06.2018
08:27:13

Андрей
07.06.2018
08:28:02
в смысле тоже нет?

Google

Anton
07.06.2018
08:28:02
может ты не видишь просто

Андрей
07.06.2018
08:28:55
context.getSystemService("vibrator")
ну или что там тебе понадобилось

Za
07.06.2018
08:29:51
А, все. Нашел причину ошибки. Случайно не в тот блок вписал
Спасибо

OlegKrikun
07.06.2018
08:40:23
в андроидх.ктх запилили просто systemService() https://github.com/android/android-ktx/blob/3b47c7561c498c4e6be91fa46987f88f7e795a8e/src/main/java/androidx/core/content/Context.kt#L37

Quantum Harmonizer
07.06.2018
08:40:48
ага, спасибо им большое, 23+

Sergey
07.06.2018
08:42:39
все там будем )

OlegKrikun
07.06.2018
08:44:03
чот с просони не догоняю почему оно 23+

Quantum Harmonizer
07.06.2018
08:44:57

OlegKrikun
07.06.2018
08:45:35
а до 23 по строке?

Quantum Harmonizer
07.06.2018
08:45:50
+

OlegKrikun
07.06.2018
08:46:05
ясн, спс

Sergey
07.06.2018
08:52:54
скорей бы уже
там буквально пару мелочей приятных, на 5+ тоже неплохо

OlegKrikun
07.06.2018
08:54:16
одном проекте 15+, в другом 19+ =(

Anton
07.06.2018
08:54:39
нах 15 поддерживать)

OlegKrikun
07.06.2018
08:54:52
инерция
да и разницы обычно нет особой 15+ или 19+ (ну кроме всяких эйджкейсов и багов)

Google

Va
07.06.2018
09:05:11

Anton
07.06.2018
09:05:19
ага
а ты стату смотрел? много там у кого 15 ?

Va
07.06.2018
09:07:02

Quantum Harmonizer
07.06.2018
09:07:20
давайте всё-таки в тематический чат

DY
07.06.2018
09:34:01
кто-нибудь использует ktor-http-client? я правильно понял, что нормальной загрузки файлов (upload) там еще не сделали? ?

Andrew
07.06.2018
09:35:50

DY
07.06.2018
09:41:51

Vladimir
07.06.2018
09:48:03

DY
07.06.2018
09:48:38

Alexey
07.06.2018
09:54:19
Там не подвезли multipart request?

Andrew
07.06.2018
09:59:28

DY
07.06.2018
10:00:04

Mikhail
07.06.2018
10:04:10
если нужен простой http клиент - можете попробовать мой https://github.com/wizzardo/Tools/wiki/HttpClient
мультипарт умеет =)

DY
07.06.2018
10:05:21
хотелось nio с корутинами..
нативный для котлина