Re: [PD-dev] networking updates

2019-10-11 Thread Roman Haefeli
Hey Dan

On Sun, 2019-08-11 at 03:49 +0200, Dan Wilcox wrote:

> Christoph and I have more or less finished some work that updates
> Pd's networking and also fixes some  bugs and a couple pain points:

Cool. Thank you both!

I did test a few things with patches I just made up (on Ubuntu 18.04),
since my network-based patches usually use iemnet. Although, I can't
help you out with real-world data, here are some findings:

> * IPv6 support

I wasn't able to test yet. I was worried about the future with Pd and
networking, but don't have to be now, thanks to you ;-)

> * multicast

Works for me, between different computers in the same LAN and also
between different software (nc -> Pd, Pd <-> Pd).

> * netsend: optional from hostname & port outlet

That's really useful and absolutely necessary when dealing with
multiple incoming connections. Only now it is possible to write server-
like patches with Pd-vanilla.

> * netsend: connectionless UDP, no more connection refused (fire &
> forget without having to manually reconnect)

Although the old behavior was "correct" in some sense (it was
nitpickingly correct to terminate a link to an endpoint detected not to
be existent), I think the new behavior is much more useful. It works
well for me, I can shut down the receiving host, restart the software
or even replace the software by another listening on the same port, the
packets still arrive. 

> * netreceive: settable timeout which defaults to 10 seconds (no more
> super-long frozen Pd)

Definitely an improvement, too. The OS defaults are way too long. The
default is good, having it settable even better.

> * improved error printing with netsend and netrceive Find Last Error
> support
> * various small bug fixes (no more polling errors after socket is
> closed)

Nice.

> One current limitation is that Tcl 8.5 does not have IPv6 support, so
> the core communication with the GUI remains IPv4.

I wouldn't know why the internal connection should switch to IPv6. My
gut feeling is that such things will stay on IPv4 for quite long.


One little thing bugs me in the help file of [netsend] and I just
noticed that it was there since at least 0.47: The different modes are
labeled 'ASCII' vs. 'binary'. I think 'ASCII' is misleading in that
there are semantics in the message format. Spaces have meaning,
messages are always terminated by semi-colon. You can't use the 'ASCII'
mode for generating arbitrary messages. 'ASCII' suggests you could use
it to write valid HTTP requests which you can't. I think 'ASCII' should
be re-labeled as 'FUDI', since that it is the protocol the non-binary
mode actually uses.

I think these are _very_ valuable improvements for Pd's net objects. I
can't think of a reason not to include them. Of course, it would be
interesting to get some feedback also from people who actually have
patches that heavily use those objects.

Roman


signature.asc
Description: This is a digitally signed message part
___
Pd-dev mailing list
Pd-dev@lists.iem.at
https://lists.puredata.info/listinfo/pd-dev


Re: [PD-dev] networking updates

2019-08-11 Thread Lucas Cordiviola
also with Pd 0.50 <-> Pd 0.49 and Pd 0.50 <-> [some other IPv4-only endpoint]!

Been testing 0.50 (win & linux) <-> 0.49(win) & UDP Terminal (android).

It's working nice.

:)

Mensaje telepatico asistido por maquinas.

On 8/11/19 9:03 AM, Christof Ressi wrote:
> The overall approach taken is to keep IPv4 as default and detect IPv6 
> addresses so this should not affect existing patches

We've tried hard to maintain backwards compatibility with existing IPv4-only 
endpoints, so please don't only test with Pd 0.50 <-> Pd 0.50 but also with Pd 
0.50 <-> Pd 0.49 and Pd 0.50 <-> [some other IPv4-only endpoint]!

Christof


Gesendet: Sonntag, 11. August 2019 um 03:49 Uhr
Von: "Dan Wilcox" <mailto:danomat...@gmail.com>
An: pd-dev <mailto:pd-dev@lists.iem.at>
Betreff: [PD-dev] networking updates
Howdy all,

Christoph and I have more or less finished some work that updates Pd's 
networking and also fixes some  bugs and a couple pain points:

* IPv6 support
* multicast
* netsend: optional from hostname & port outlet
* netsend: connectionless UDP, no more connection refused (fire & forget 
without having to manually reconnect)
* netreceive: settable timeout which defaults to 10 seconds (no more super-long 
frozen Pd)
* improved error printing with netsend and netrceive Find Last Error support
* various small bug fixes (no more polling errors after socket is closed)

The pdsend & pdreceive utils are similarly updated.

The discussion & pull request on Github: 
https://github.com/pure-data/pure-data/pull/577

If you can build Pd and want to try this out, the branch is called 
feature/netobject-updates

The overall approach taken is to keep IPv4 as default and detect IPv6 addresses 
so this should not affect existing patches. The IP version handling should also 
degrade gracefully based if IPv6 is not available. An added bonus is hostnames 
now resolve (ie. google.com<http://google.com>) and you can also listen on a 
hostname if your system can grab it (ie. computername.local).

One current limitation is that Tcl 8.5 does not have IPv6 support, so the core 
communication with the GUI remains IPv4.


Dan Wilcox
@danomatika<http://twitter.com/danomatika>
danomatika.com<http://danomatika.com>
robotcowboy.com<http://robotcowboy.com>

___ Pd-dev mailing list 
Pd-dev@lists.iem.at<mailto:Pd-dev@lists.iem.at> 
https://lists.puredata.info/listinfo/pd-dev



N�n�r)em�h�yhiם�w^���
___
Pd-dev mailing list
Pd-dev@lists.iem.at
https://lists.puredata.info/listinfo/pd-dev


Re: [PD-dev] networking updates

2019-08-11 Thread Lucas Cordiviola
On 8/10/19 10:49 PM, Dan Wilcox wrote:
>
> If you can build Pd and want to try this out, the branch is called 
> feature/netobject-updates


When trying to build this one I get:

u_pdsend.c:14:10: fatal error: s_net.h: No such file or directory
  #include 
   ^
compilation terminated.
make: *** [makefile.gnu:170: ../bin/pdsend] Error 1

I'm on linux, using the package downloaded as zip from: 
https://github.com/pure-data/pure-data/tree/feature/netobject-updates


--

Mensaje telepatico asistido por maquinas.





___
Pd-dev mailing list
Pd-dev@lists.iem.at
https://lists.puredata.info/listinfo/pd-dev


Re: [PD-dev] networking updates

2019-08-11 Thread Christof Ressi

> The overall approach taken is to keep IPv4 as default and detect IPv6 addresses so this should not affect existing patches

 

We've tried hard to maintain backwards compatibility with existing IPv4-only endpoints, so please don't only test with Pd 0.50 <-> Pd 0.50 but also with Pd 0.50 <-> Pd 0.49 and Pd 0.50 <-> [some other IPv4-only endpoint]!

 

Christof

 

 

Gesendet: Sonntag, 11. August 2019 um 03:49 Uhr
Von: "Dan Wilcox" 
An: pd-dev 
Betreff: [PD-dev] networking updates


Howdy all,
 

Christoph and I have more or less finished some work that updates Pd's networking and also fixes some  bugs and a couple pain points:

 

* IPv6 support

* multicast

* netsend: optional from hostname & port outlet

* netsend: connectionless UDP, no more connection refused (fire & forget without having to manually reconnect)

* netreceive: settable timeout which defaults to 10 seconds (no more super-long frozen Pd)

* improved error printing with netsend and netrceive Find Last Error support

* various small bug fixes (no more polling errors after socket is closed)

 

The pdsend & pdreceive utils are similarly updated.

 

The discussion & pull request on Github: https://github.com/pure-data/pure-data/pull/577

 

If you can build Pd and want to try this out, the branch is called feature/netobject-updates

 

The overall approach taken is to keep IPv4 as default and detect IPv6 addresses so this should not affect existing patches. The IP version handling should also degrade gracefully based if IPv6 is not available. An added bonus is hostnames now resolve (ie. google.com) and you can also listen on a hostname if your system can grab it (ie. computername.local).

 

One current limitation is that Tcl 8.5 does not have IPv6 support, so the core communication with the GUI remains IPv4.

 



Dan Wilcox

@danomatika

danomatika.com

robotcowboy.com

 


___ Pd-dev mailing list Pd-dev@lists.iem.at https://lists.puredata.info/listinfo/pd-dev







___
Pd-dev mailing list
Pd-dev@lists.iem.at
https://lists.puredata.info/listinfo/pd-dev


Re: [PD-dev] networking updates

2019-08-11 Thread Dan Wilcox
Ah whoops. I meant to write "Christof."

> On Aug 11, 2019, at 3:49 AM, Dan Wilcox  wrote:
> 
> Howdy all,
> 
> Christoph and I have more or less finished some work that updates Pd's 
> networking and also fixes some  bugs and a couple pain points:


Dan Wilcox
@danomatika 
danomatika.com 
robotcowboy.com 



___
Pd-dev mailing list
Pd-dev@lists.iem.at
https://lists.puredata.info/listinfo/pd-dev


[PD-dev] networking updates

2019-08-10 Thread Dan Wilcox
Howdy all,

Christoph and I have more or less finished some work that updates Pd's 
networking and also fixes some  bugs and a couple pain points:

* IPv6 support
* multicast
* netsend: optional from hostname & port outlet
* netsend: connectionless UDP, no more connection refused (fire & forget 
without having to manually reconnect)
* netreceive: settable timeout which defaults to 10 seconds (no more super-long 
frozen Pd)
* improved error printing with netsend and netrceive Find Last Error support
* various small bug fixes (no more polling errors after socket is closed)

The pdsend & pdreceive utils are similarly updated.

The discussion & pull request on Github: 
https://github.com/pure-data/pure-data/pull/577 


If you can build Pd and want to try this out, the branch is called 
feature/netobject-updates

The overall approach taken is to keep IPv4 as default and detect IPv6 addresses 
so this should not affect existing patches. The IP version handling should also 
degrade gracefully based if IPv6 is not available. An added bonus is hostnames 
now resolve (ie. google.com ) and you can also listen on a 
hostname if your system can grab it (ie. computername.local).

One current limitation is that Tcl 8.5 does not have IPv6 support, so the core 
communication with the GUI remains IPv4.


Dan Wilcox
@danomatika 
danomatika.com 
robotcowboy.com 



___
Pd-dev mailing list
Pd-dev@lists.iem.at
https://lists.puredata.info/listinfo/pd-dev