Size: a a a

2021 June 30

AS

Alexey Stavrov in Modern::Perl
С телнфона не могу открыть strace(
источник

М

Млюшевый Пишка... in Modern::Perl
я сделал strace по всем существующим и отсуствующим портам,
источник

М

Млюшевый Пишка... in Modern::Perl
и никакй разницы в них
источник

М

Млюшевый Пишка... in Modern::Perl
((
источник

AS

Alexey Stavrov in Modern::Perl
Вы пока бы показали полный минимальный пример, который не работает.
источник

SZ

Sergey Zhmylove in Modern::Perl
Не так надо
источник

Ii

Ilya ilux in Modern::Perl
http://api.zeromq.org/3-2%3azmq-connect

for most transports and socket types the connection is not performed immediately but as needed by ØMQ. Thus a successful call to zmq_connect() does not mean that the connection was or could actually be established. Because of this, for most transports and socket types the order in which a server socket is bound and a client socket is connected to it does not matter. The first exception is when using the inproc:// transport: you must call zmq_bind() before calling zmq_connect(). The second exception are ZMQ_PAIR sockets, which do not automatically reconnect to endpoints.

following a zmq_connect(), the socket enters its normal ready state. By contrast, following a zmq_bind() alone, the socket enters a mute state in which the socket blocks or drops messages according to the socket type, as defined in zmq_socket(3).
источник

М

Млюшевый Пишка... in Modern::Perl
my %conn;
#my @ports = (42002, 42003, 42004, 42005, 42006, 42007, 42008, 42009, 42010, 42011);
my @ports = (62111, 42002, 42003, 42004, 42005, 42006, 42007, 42008, 42021, 42022, 42023);
for my $port (@ports) {
  #$conn{$port} = $ctx->socket(ZMQ_DEALER);
  $conn{$port} = $ctx->socket(ZMQ_REQ);
   $conn{$port}->die_on_error(1);
  $conn{$port}->connect("tcp://127.0.0.1:$port");
#  print $conn{$port}->has_error() . $conn{$port}->last_errno() . "\n";
my ($major, $minor, $patch) = $conn{$port}->version;
print " ($major, $minor, $patch)\n";
}


use EV;
my @handlers;


my @recv;
my $t = [gettimeofday];
for my $s (keys %conn) {
   my $handler = EV::io $conn{$s}->get_fd, EV::READ, sub {
       while ($conn{$s}->has_pollin) {
           print Dumper(@_);
           my $reply = $conn{$s}->recv();
           print "got reply '$reply' from $s\n";
           push @recv, $reply;
       }
   };
   push(@handlers, $handler);
   print "pushing to: $s\n";
   $conn{$s}->send("get smth");
}
my $check_every = 1; # second
my $check = EV::periodic 0, $check_every, 0, sub {
 if(@recv == @ports) {
   EV::break(EV::BREAK_ALL);
 }
};
EV::run;
источник

М

Млюшевый Пишка... in Modern::Perl
можно на ты
источник

М

Млюшевый Пишка... in Modern::Perl
это всё прекрасно работает когда сокет слушают
источник

М

Млюшевый Пишка... in Modern::Perl
и как только проблемы у сервера (сдох) то всё повисает,разумеетс)
источник

М

Млюшевый Пишка... in Modern::Perl
видимо надо где-то в лупе что-то иначе делать
источник

Ii

Ilya ilux in Modern::Perl
если хост и порт валидны при коннекте не будет ошибки
несмотря на то, что на той стороне нет никого
источник

М

Млюшевый Пишка... in Modern::Perl
62111 никто не слушает :)
источник

М

Млюшевый Пишка... in Modern::Perl
пока не понимаю что надо делать
источник

VG

Vadim Goncharov in Modern::Perl
а ты теперь вот так открывай
источник

AS

Alexey Stavrov in Modern::Perl
Как называетс?
источник

SZ

Sergey Zhmylove in Modern::Perl
Это есть под iphone?
источник

М

Млюшевый Пишка... in Modern::Perl
Офигенно! Я решил проэкперементировать :) запустил читалку, он ожидаемо повисла, до этого на этом порту не было ничего запущено, и я запустил там слушателя, она такая раз и вернула результат. само всё сделалось
источник

М

Млюшевый Пишка... in Modern::Perl
т.е. можно просто поставить EV::timer и выходить по таймауту
источник