Size: a a a

2020 August 26

В

Вертолетчик... in ErlangRus
Иванов Иванов
{'$socket', socket(), abort, Info}
Вот! Его-то и не получаю
источник

ИИ

Иванов Иванов... in ErlangRus
Вертолетчик
Вот! Его-то и не получаю
не матчится может? Info = {SelectRef, closed}
источник

В

Вертолетчик... in ErlangRus
Иванов Иванов
не матчится может? Info = {SelectRef, closed}
Не, ты посмотри какое я сообщение скопировал, там про abort нет ни слова
источник

В

Вертолетчик... in ErlangRus
То есть получаю вот такое: {'$socket', socket(), select, SelectRef}
источник

ИИ

Иванов Иванов... in ErlangRus
Вертолетчик
Проблема в получении нормальных сообщений, когда делаю его асинхронным socket:recv(Sock, 0, nowait).
Получаю в ответ что-то вроде этого:
`{'$socket',{'$socket',#Ref<0.3303339771.836632582.23870>},
          select,#Ref<0.3303339771.836501510.23889>}`

Но я точно знаю, что сокет закрыт, но никакого сообщения нет об этом.
С gen_tcp там всё окей, получаем {tcp_close, ...}, дальше обрабатываем, а тут блин чот не втыкаю пока
я даже в реализации копался, но не помню. возможно он тебе в любом случае ref возващает. а если > 0 поставишь что будет?
источник

ИИ

Иванов Иванов... in ErlangRus
Вертолетчик
Не, ты посмотри какое я сообщение скопировал, там про abort нет ни слова
а в какой момент сокет закрыт? почему так уверен?
источник

В

Вертолетчик... in ErlangRus
Больше нуля не пробовал, я не знаю какой длины пакет
источник

ИИ

Иванов Иванов... in ErlangRus
Вертолетчик
Больше нуля не пробовал, я не знаю какой длины пакет
я не понял - думал ты про возвращаемое значение.
источник

ИИ

Иванов Иванов... in ErlangRus
Вертолетчик
Больше нуля не пробовал, я не знаю какой длины пакет
и что когда ты получаешь это сообщение - пробуешь вычитывать оттуда?
источник

В

Вертолетчик... in ErlangRus
Иванов Иванов
а в какой момент сокет закрыт? почему так уверен?
Ну это во-первых в логах сервера пишется, к которому я коннекчусь, а во-вторых, уже бесполезно слать туда дальше, пишет {error, closed}
источник

ИИ

Иванов Иванов... in ErlangRus
Вертолетчик
Ну это во-первых в логах сервера пишется, к которому я коннекчусь, а во-вторых, уже бесполезно слать туда дальше, пишет {error, closed}
что слать? тыже читаешь. сообщение говорит о том, что есть данные
источник

ИИ

Иванов Иванов... in ErlangRus
вот думаю что при попытке след. асинхронного чтения ты и получить abort
источник

ИИ

Иванов Иванов... in ErlangRus
ну или {error, ..}
источник

В

Вертолетчик... in ErlangRus
Иванов Иванов
что слать? тыже читаешь. сообщение говорит о том, что есть данные
Ну да, прочитал, получил это сообщение. Потом пытаюсь писать туда, но сокет закрыт. Но дело в том, что gen_tcp мне сразу присылает сообщение при чтении {tcp_closed, ...}, а этот присылает, что типа есть какой-то select. Никакого намёка, что сокет закрыт - нет
источник

ИИ

Иванов Иванов... in ErlangRus
Вертолетчик
Ну да, прочитал, получил это сообщение. Потом пытаюсь писать туда, но сокет закрыт. Но дело в том, что gen_tcp мне сразу присылает сообщение при чтении {tcp_closed, ...}, а этот присылает, что типа есть какой-то select. Никакого намёка, что сокет закрыт - нет
socket так устроен, что там одноразовый поллинг
источник

ИИ

Иванов Иванов... in ErlangRus
посомтри флаги
источник

В

Вертолетчик... in ErlangRus
Ну окей, будем дальше смотреть. Дока конечно капец скудная
источник

ИИ

Иванов Иванов... in ErlangRus
Вертолетчик
Ну окей, будем дальше смотреть. Дока конечно капец скудная
ты получаешь сообщение только по факту вызова . считай как будто recv_once
источник

ИИ

Иванов Иванов... in ErlangRus
Вертолетчик
Ну окей, будем дальше смотреть. Дока конечно капец скудная
там еще не в полном объеме функционал реализован. модуль в разработке
источник

В

Вертолетчик... in ErlangRus
Иванов Иванов
ты получаешь сообщение только по факту вызова . считай как будто recv_once
Да, но хотя б тогда данные чтоб в ответ присылались бы, а то какие-то select, да SelectRef... вот супер, поди разберись что там за данные
источник