From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.9 required=5.0 tests=BAYES_00,FORGED_GMAIL_RCVD, FREEMAIL_FROM autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: a07f3367d7,95a53979c38c4379 X-Google-Attributes: gida07f3367d7,public,usenet X-Google-NewGroupId: yes X-Google-Language: ENGLISH,UTF8 Received: by 10.224.111.8 with SMTP id q8mr6644141qap.3.1347311661228; Mon, 10 Sep 2012 14:14:21 -0700 (PDT) Received: by 10.52.28.83 with SMTP id z19mr2425110vdg.20.1347311660796; Mon, 10 Sep 2012 14:14:20 -0700 (PDT) Path: da15ni3445qab.0!nntp.google.com!v8no17037qap.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Mon, 10 Sep 2012 14:14:20 -0700 (PDT) In-Reply-To: <8bbe614a-5728-4482-94a2-7fa47b62dcf9@googlegroups.com> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=46.171.80.166; posting-account=bMuEOQoAAACUUr_ghL3RBIi5neBZ5w_S NNTP-Posting-Host: 46.171.80.166 References: <07784e54-debe-4f51-951f-99a7ded6242b@googlegroups.com> <8bbe614a-5728-4482-94a2-7fa47b62dcf9@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <87532b65-4d9c-4ac3-b6c3-cb024e7b3b9c@googlegroups.com> Subject: Re: YAMI4 1.6.0 released From: Maciej Sobczak Injection-Date: Mon, 10 Sep 2012 21:14:21 +0000 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Date: 2012-09-10T14:14:20-07:00 List-Id: W dniu poniedzia=C5=82ek, 10 wrze=C5=9Bnia 2012 13:08:32 UTC+2 u=C5=BCytkow= nik (Nieznane) napisa=C5=82: > That's very interesting, as I'm currently looking for a good basis for a = larger project of mine. I have three questions: >=20 > 1. Can it do NAT traversal? I'm not 100% sure what do you mean by this, but YAMI4 is "friendly" with re= gard to both NAT and firewalls in the sense described here: http://www.inspirel.com/yami4/book/8-1.html In other words, the communicating parties can reverse their client-server r= oles after the connection is established, so that the server can sit behind= the firewall or NAT. > 2. Which underlying transport protocols are used, TCP, UDP, UDT, ...? TCP and UDP are both supported. In addition, Unix sockets can be used for c= ommunication between processes on Unix systems. > 3. Does it handle timeouts gracefully, i.e. allow the user to specify tim= eout values for socket operations? There is a configurable timeout for creating connections. In addition to th= is, individual messages can be "timed out" in a way that is much better int= egrated with the language, as logical messages are represented by protected= objects. That is, an appropriate entry call allows to discover whether the= message is in the given state and this can be performed in a standard sele= ct pattern. This means that not only timeouts are supported, but also more = involved scenarios can be easily achieved that are completely impossible wi= th other messaging/communication libraries. For example, you can send sever= al independent messages to different servers and in a single select stateme= nt that gathers all of them wait for the one that is processed the fastest.= This level of programming comfort has no equivalent with simple timeouts. --=20 Maciej Sobczak * http://www.inspirel.com