@ru_python

Страница 3707 из 9768
Aleksandr
07.09.2017
19:06:47
затем, что больше параллельных коннектов держится
один сокет - это один коннект, потому что коннект требует порта, к нему привязываются i/o объекты. ты можешь в один коннект писать что угодно и хоть из тысячи потоков но sockfd будет один, а создавать копии по умолчанию смысла нет

Nikolay
07.09.2017
19:07:20
один сокет - это один коннект, потому что коннект требует порта, к нему привязываются i/o объекты. ты можешь в один коннект писать что угодно и хоть из тысячи потоков но sockfd будет один, а создавать копии по умолчанию смысла нет
один сокет - это не один коннект, и порт тут ни при чем. На сервере приложение крутится на одном порте, но обслуживает десятки тысяч клиентов одновременно

sockfd будет один, но клиентских сокетов будет больше

Google
Nikolay
07.09.2017
19:08:11
я тебе повторяю, слушающий сокет ведет себя иначе, я говорю про клиентские
да не ведет он себя иначе, и там и там системный вызов socket() в асинхронном режиме

этот вызов создает один дескриптор, да, а потом приходит epoll и создает и мониторит еще пачку по числу клиентов

Aleksandr
07.09.2017
19:08:35
sockfd будет один, но клиентских сокетов будет больше
я уже выше отмечал что когда мы говорим про клиента мы не имеем ввиду что у клиента есть слушаюющий сокет

Donaudampf
07.09.2017
19:09:25
нет, просто таймаут
В aiohttp есть параметры limit_per_host и limit, у меня так было: get в корутине ставил в очередь сразу все стопицот урлов, но мёртвые забивали весь лимит, поэтому до большинства дело даже не доходило, и они все по таймауту отваливались. Это действительно дезигн, видимо. Я просто запускал корутины с get через семафор, который не позволял ставить на скачивание одновременно больше урлов, чем разрешает limit, стало вроде норм

Aleksandr
07.09.2017
19:09:29
да не ведет он себя иначе, и там и там системный вызов socket() в асинхронном режиме
инициатором отличается же, ты не можешь внезапно начать слушать на порту открытом к серверу

Nikolay
07.09.2017
19:10:31
epoll ничего не создаёт, в него можно только добавить
он генерирует событие, по которому серверный или клиентский код создает дескриптор

Aleksandr
07.09.2017
19:10:44
listen() marks the socket referred to by sockfd as a passive socket, that is, as a socket that will be used to accept incoming connection requests using accept(2). The sockfd argument is a file descriptor that refers to a socket of type SOCK_STREAM or SOCK_SEQPACKET. listen меняет модель поведения сокета

Nikolay
07.09.2017
19:10:47
не без ошибок, но в целом нормально

Aleksandr
07.09.2017
19:11:08
мы не про питон, мы про tcp и его реализацию в ядре

Nikolay
07.09.2017
19:11:20
там прям пример кода есть вот такой: while True: events = epoll.poll(1) for fileno, event in events: if fileno == serversocket.fileno(): connection, address = serversocket.accept() connection.setblocking( 0) epoll.register(connection.fileno(), select.EPOLLIN) connections[connection.fileno()] = connection requests[connection.fileno()] = b'' responses[connection.fileno()] = response

ну, на примере питона проще объяснить

Google
Nikolay
07.09.2017
19:12:11
из кода видишь, что на ивент с epoll создается дескриптор

и их будет много, по одному на каждое соединение

любой асинхронный сервер так работает, более того, клиент тоже, только там не accept вызывается, а open

Aleksandr
07.09.2017
19:13:34
из кода видишь, что на ивент с epoll создается дескриптор
так он создается для подключившегося клиента, слушающий не меняется

Alexander
07.09.2017
19:13:37
serversocket — это слушающий сокет. Поэтому в словаре всегда будет один fd на одно TCP-соединение

Nikolay
07.09.2017
19:14:01
так он создается для подключившегося клиента, слушающий не меняется
разумеется, слушающий не меняется, но в итоге-то дескрипторов больше одного

Aleksandr
07.09.2017
19:14:05
Nikolay
07.09.2017
19:14:38
и epoll их мониторит

Alexander
07.09.2017
19:14:48
Nikolay
07.09.2017
19:14:53
я про это и говорил с самого начала

Aleksandr
07.09.2017
19:15:54
я про это и говорил с самого начала
изначально мы говорили про клиента

Alexander
07.09.2017
19:16:16
Аааа, я понял, что ты говоришь. Но это было сложно

Nikolay
07.09.2017
19:16:17
изначально мы говорили про клиента
так в клиенте то же самое

просто дескрипторы не accept создает, а open

и точно так же добавляет их в epoll

нету особой разницы

Alexander
07.09.2017
19:17:21
просто дескрипторы не accept создает, а open
Какой open? Клиент создаёт сокет через socket. Потом на него connect делает

Nikolay
07.09.2017
19:19:19
Какой open? Клиент создаёт сокет через socket. Потом на него connect делает
ну неважно, я просто порядок системных вызовов там забыл

суть от этого не меняется

Google
Nikolay
07.09.2017
19:19:24
https://www.opennet.ru/base/dev/epoll_intro.txt.html#client.cpp

Сергей
07.09.2017
19:19:48
Подскажите, может ли бот читать сообщения из канала?

Aleksandr
07.09.2017
19:21:20
Какой open? Клиент создаёт сокет через socket. Потом на него connect делает
и новый fd после этого там будет только если его скопировать. Коля же видиму рубится за то что клиентский сокет может по желанию стать слушающим.

Sheridan
07.09.2017
19:21:48
Я вездессущ

Aleksandr
07.09.2017
19:21:56
суть от этого не меняется
меняется. один ко многим и один к одному, логика разная у таких сокетов

Aleksandr
07.09.2017
19:25:14
Ага, я уже понял его
но сокет уже работающий с сервером не может сделать listen, в общем случае. не исключаю что в ядре есть флаг ломающий все

serbernar
07.09.2017
19:28:23


Или к вам прийдёт наталка

Nikolay
07.09.2017
19:29:15
?

не, завтра пятница

serbernar
07.09.2017
19:29:46
Лол, как будто это мешает сегодня пить

Aleksandr
07.09.2017
19:30:56
гарна

serbernar
07.09.2017
19:31:19
гарна
Може стати твоэю жiнкою

Bsod
07.09.2017
19:31:33
как раз пью вино, давай наталку

serbernar
07.09.2017
19:32:04
Bsod
07.09.2017
19:32:22
не, яж не из европы

serbernar
07.09.2017
19:33:04
Ах ты тролль...

Aleksandr
07.09.2017
19:35:54
Може стати твоэю жiнкою
дякую тоби Сергий

Massimo
07.09.2017
19:36:38
Кто у нее на майке?

Google
serbernar
07.09.2017
19:36:58
Nikolay
07.09.2017
19:37:04
там один сокет внешний, но дескрипторов может быть много

Massimo
07.09.2017
19:37:27
D:

serbernar
07.09.2017
19:37:31
А вообще - Иван Франко

Nikolay
07.09.2017
19:37:37
serbernar
07.09.2017
19:37:39
Поэт такой

а?
На тебя похож говорю

ну если усы сбрить

Admin
ERROR: S client not available

serbernar
07.09.2017
19:38:11
(ему)

Хотя он уже мертв

Nikolay
07.09.2017
19:38:35
(ему)
наталке?

serbernar
07.09.2017
19:38:47
Ну и наталке тоже

Andrei
07.09.2017
19:52:59
В Украине красивые девахи

/dev
07.09.2017
19:53:24
В Украине красивые девахи
И что у них — поперек?

Andrei
07.09.2017
19:54:02
И что у них — поперек?
сам-то понял, что сказал?

/dev
07.09.2017
19:54:23
сам-то понял, что сказал?
Я-то понял, но поперек или нет?

ilya
07.09.2017
19:55:27
ну всё, раз не поперёк, то ничего интересного ))))

Andrei
07.09.2017
19:55:46
инопланетяне...

Google
Andrei
07.09.2017
19:56:29
щупальца и все остальное - это в Японию

там и вдоль, и поперек, и под любым углом

ilya
07.09.2017
19:57:21
пусть в японию едут, нечего баб рекламировать, самим мало )))))

Andrei
07.09.2017
19:58:47
хм, ну да - логично

Черный
07.09.2017
20:00:43




Так вот не работает, например

Andrei
07.09.2017
20:14:33
че гугл говорит?

Черный
07.09.2017
20:17:22
про то, как устанавливать с другого канала, есть в доках конды https://conda.io/docs/user-guide/tasks/manage-pkgs.html#installing-packages-from-anaconda-org но этот способ как раз вызывает ошибку, по которой уже куча нерелевантной фигни

впрочем, там в самой ошибке написано, что такое бывает и надо типа повторить

так что прост отложу до завтра, видимо

Andrei
07.09.2017
20:22:25
а сниффером смотрел - есть запрос на канал?

Черный
07.09.2017
20:24:54
не приходило такое в голову, попробую

Andrei
07.09.2017
20:25:54
а URL он откуда знает? в канале прописано?

Aleksandr
07.09.2017
20:25:56
урл битый

Черный
07.09.2017
20:27:07
не знаю, откуда он знает урл

Aleksandr
07.09.2017
20:27:24
не знаю, откуда он знает урл
в логах написано куда он ломится

имя не резолвится, что явно указано в последней строке

Черный
07.09.2017
20:28:04
и как это починить?

Черный
07.09.2017
20:28:26
+

Страница 3707 из 9768