Size: a a a

2020 August 31

SZ

Sergey Zhmylove in Modern::Perl
Denis Erygin
проблема именно в том что от сервера не приходит пакет с нового порта, хотя точно отправляется
man tcpdump
источник

SZ

Sergey Zhmylove in Modern::Perl
Denis Erygin
на чистом C принимает без проблем
connect() на sock_dgram принимает на си?
источник

SZ

Sergey Zhmylove in Modern::Perl
Denis Erygin
при чем тут send, от сервера ждем посылку
Вот именно. И если бы ты прочитал, как работают dgram сокеты, то увидел бы, что:
1) создаётся сокет для приёма сообщений
2) с помощью bind в пространстве портов соответствующей address family (af_inet => udp) привязывается к нужным ip адресу и порту
3) вызывается recvfrom, который по указателю в структуру sockaddr записывает адрес отправителя
источник

SZ

Sergey Zhmylove in Modern::Perl
Vadim Goncharov
а что работает тогда?
А ничего походу не работает :р
Io::socket -- один из самых наименее протестированных модулей перла :р
источник

VG

Vadim Goncharov in Modern::Perl
Sergey Zhmylove
А ничего походу не работает :р
Io::socket -- один из самых наименее протестированных модулей перла :р
я не знаю, зачем он привязался именно к этому модулю, но как я вижу по коду, должен заработать и он, при правильной готовке
источник

SZ

Sergey Zhmylove in Modern::Perl
Он и работает, 146%
источник

DE

Denis Erygin in Modern::Perl
запустите тесты и посмотрите
источник

VG

Vadim Goncharov in Modern::Perl
зачем их запускать, по ним и так видно
источник

DE

Denis Erygin in Modern::Perl
почему uc.pl не работает?
источник

VG

Vadim Goncharov in Modern::Perl
потому что Peer* в конструкторе
источник

SZ

Sergey Zhmylove in Modern::Perl
Denis Erygin
почему uc.pl не работает?
Потому что порт трекается в объекте
источник

VG

Vadim Goncharov in Modern::Perl
и кстати, в обоих твоих тестах - разовое получение, а не после хэндшейка
источник

DE

Denis Erygin in Modern::Perl
получение с нового порта
источник

DE

Denis Erygin in Modern::Perl
Sergey Zhmylove
Потому что порт трекается в объекте
где?
источник

VG

Vadim Goncharov in Modern::Perl
а по протоколу там два раза получение должно быть
источник

VG

Vadim Goncharov in Modern::Perl
так ты ж это не воспроизводишь, если уж "тестом" назвал
источник

DE

Denis Erygin in Modern::Perl
ситуация и так воспроизводится
источник

SZ

Sergey Zhmylove in Modern::Perl
Denis Erygin
где?
https://metacpan.org/release/IO/source/lib/IO/Socket/INET.pm
Строка 36 и код, который выполняется дальше
источник

DE

Denis Erygin in Modern::Perl
Sergey Zhmylove
https://metacpan.org/release/IO/source/lib/IO/Socket/INET.pm
Строка 36 и код, который выполняется дальше
это не показатель, там в xs может уйти
источник

SZ

Sergey Zhmylove in Modern::Perl
Denis Erygin
это не показатель, там в xs может уйти
Оно и уходит потом, и чо?
источник