@kotlin_lang

Страница 697 из 982
Alexander
06.06.2018
15:43:06
Я не понял, какое отношение ktor имеет к udp

В принципе можно устроить перессылку пакетов с http заголовками по upd. Когда-то так даже делали.

Bogdan
06.06.2018
15:44:22
Я не понял, какое отношение ktor имеет к udp
ну вроде через сокеты можно https://ktor.io/servers/raw-sockets.html

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.

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
Через udp получается значительно больше данных гнать чем через tcp
Аха, только не гонять, а отправлять, но есть нюанс: доходят не все ?

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

Quantum Harmonizer
07.06.2018
07:58:54
Если вдруг кому интересно https://github.com/real-logic/aeron
Да, всегда было интересно. Кто-нибудь пробовал, в т. ч. на мобилках?

Za
07.06.2018
08:20:06
Всем привет

Подскажите, пожалуйста, как вызвать getSystemService()?

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

Za
07.06.2018
08:27:13
context.getSystemService?
context тоже нет

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

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

Андрей
07.06.2018
08:28:55
context тоже нет
строку не забыл?

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
чот с просони не догоняю почему оно 23+
потому что оригинальный метод getSystemSetvice(Class) завезли в 23

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
нах 15 поддерживать)
та и 19 пора бы уже дропать )

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) там еще не сделали? ?

DY
07.06.2018
09:41:51
Да вроде сделали: https://ktor.io/clients/http-client.html#specifying-a-body-for-requests
не работает.. да и название поля с файлом указать нельзя никак, так что даже если бы работало, этого мало

Vladimir
07.06.2018
09:48:03
кто-нибудь использует ktor-http-client? я правильно понял, что нормальной загрузки файлов (upload) там еще не сделали? ?
Последний раз, когда с ним сталкивался (0.9.2), он был не очень стабильным, поэтому рекомендую взять что-нибудь другое

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

Andrew
07.06.2018
09:59:28
не работает.. да и название поля с файлом указать нельзя никак, так что даже если бы работало, этого мало
Да, похоже, multipart в body засовывать пока нечем, кроме как руками. LocalFileContent не о том :/

DY
07.06.2018
10:00:04
Там не подвезли multipart request?
угу. с Multipart body игнорируется, как не создавай.

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

мультипарт умеет =)

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

нативный для котлина

Страница 697 из 982