[PD] Actionscript library for netsend/netreceive

Matteo Sisti Sette matteosistisette at gmail.com
Tue Feb 23 22:09:30 CET 2010


Justin Glenn Smith escribió:

> 
> never mind, I was confused there, a normal socket does allow both send and receive.
> 
> For PD to have two-way sockets, and have them be really useful, we would have to have dynamically created connections, and this kind of thing is a little trickier in PD than it is in a textual programming language.
> 

I'm not sure I understand.
Connection are already dynamically created: [netsend] connects to a 
server by sending it a "connect" message.

I don't dubt it is complicated to implement the sort of communication PD 
does, but given what is already implemented, I don't see the "extra" 
complication of implementing a scenario similar to the one I described.

And from the standpoint of the user (or patcher), I think it would be 
pretty flexible and quite simple, i.e. you wouldn't need to worry about 
the tricky socket complications much more than you need do now.....

All the semantics are already there: [netsend] behaves as a client and 
already have the connect and disconnect functionalities; it would only 
need an outlet from which it would output messages it receives from the 
server (once it has connected).
[netreceive] behaves as a server: it would only need an inlet and a 
"send" method that would behave exactly as the one of [netsend] (but 
would send to the client, provided.........

Oh! Here's the part I had overlooked! The fact that the current 
[netreceive] (which is a server) only receives, means that having more 
than one clients connected to it isn't an "issue" because you don't have 
to address them.
Being able to send through a server socket would imply either:
A) somewhat identifying and addressing the connected clients when 
sending to them (e.g. a "send" message should have an argument somehow 
identifying the client to send to), or
B) just sending to all the clients currently connected.

B would mean reduced functionality compared to a "full featured" server 
socket, but already something more than the current only-receive server 
(netreceive). In the case of only one connected client (a pretty common 
case I guess) it would provide easy bidirectional communication.

A serious (A) solution would be indeed complicated, but not impossible 
to devise.
For example, the [would-be-server]'s outlet that currently only outputs 
the number of connected clients, could output a message every time an 
incoming connection is established, and such a message would include the 
IP address of the client, the TCP port (not of much use presumably), and 
a unique ID, unique to the _connection_ (call it session if you want).
Then the "send" message for the [would-be-server] object would be "send 
_id_ ..." (where ... is the message to be sent).

With this information, you would be able to recognize the client by its 
IP address if you need to.....

Just an idea.

m.

-- 
Matteo Sisti Sette
matteosistisette at gmail.com
http://www.matteosistisette.com




More information about the Pd-list mailing list