wm withdraw .; wm withdraw .output; wm geo .konsola 672x608+66+66 ## ZeroMQ - klient # + linux, tclkit8.5/6, pamietac o ". e" PRZED uruchomieniem konsoli! # skrypt "e" ustawia LD_LIBRARY_PATH na kat. z bibl. .so # + docs: # http://zguide.zeromq.org/page:all#Getting-the-Message-Out # http://wiki.tcl.tk/27462 - zmq # http://wiki.tcl.tk/37718 - msgpck (wersja skryptowa?) # jest tez ksiazka w pdf... # + uwagi o ZMQ: # 1. zmq jest nie ma NIC wspolnego ze sposobami serializacji str. danych # mozna np. uzywac msgpack # 2. zmq WYMUSZA odp. kolejnosc recv/send w zaleznosci od wzorca komunikacji: REQ/REP, PUB/SUB, itp # np REQ/REP wymaga komunikacji jak w tym przykladzie # proc err args {catch $args err; set err} lappend auto_path ./zeromq package re zmq #% 4.0.1 package re msgpack #% 0.5.0 zmq version #info comm zmq::*; # lista komend pakietu zmq #info comm msgpack::* # + tu uzywa sie ensables, czyli "zmq context" zamiast "zmq::context" zmq context c1 zmq socket s1 c1 REQ #% ::s1 #err s1 qqq #% bad method "qqq": must be bind, cget, close, configure, connect, destroy, disconnect, get, getsockopt, readable, recv_msg, send_msg, dump, recv, send, sendmore, set, setsockopt, unbind, writable, recv_monitor_event, or monitor s1 connect "tcp://localhost:7777" #% s1 send "A ku ku !!! ??? 123" #% #% s1 recv #% odp na: A ku ku !!! ??? 123 # + zmq WYMUSZA odp. kolejnosc send/recv !!! # + co sie dzieje po chwilowym wylaczeniu serwera ? 05.2020 c1 config s1 config # + introspekcja? s1 destroy c1 destroy # binarna serializacja przy pomocy "msgpack"... # + mozna tez uzywac innej bibl, np. CDR z Corby lub XDR z Sun RPC # msgpack packer p #% ::p p pack string "A ku ku !!!" p pack double 123.123 #% msgpack unpack [p data] #% {raw {A ku ku !!!}} {double 123.123} p destroy #% err p qqq exit