[PD-dev] SIGPIPE on iemnet's tcpserver

IOhannes m zmoelnig zmoelnig at iem.at
Thu Jul 4 14:13:20 CEST 2013


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 2013-07-04 13:55, Antoine Villeret wrote:
> 2013/7/3 IOhannes m zmoelnig <zmoelnig at iem.at>
> 
> On 2013-07-03 17:33, Antoine Villeret wrote:
>>>> so it could be difficult to use a server which doesn't accept
>>>> more than one connection...
>>>> 
> 
> no that's not what i meant. you can have as many connections as you
> want, but they cannot be maintained at the same time.
> 
> simple example: - both clientA and clientB send a a query to the
> server - to complicate things, they do so at exactly the same time 
> - but since IP is a serial protocol, they will somehow arrive one 
> after each other - let's assume clientB was faster - [udpserver]
> will output the query from clientB - if the server-patch now
> immediately responds to that query, the response will be sent back
> to clientB - then [udpserver] will output the query from clientA. -
> [udpserver] will forget everything about clientB - if the
> server-patch responds immediately to that query, the response will
> be sent back to clientB - if you later "send" something from the
> server, it will still be sent to clientB (because clientB is the
> last known connection)
> 
> 
>> so in this case, if I understand correctly, udpserver never send
>> an answer to clientA ?

no, it does send and answer back.

>> I have to disconnect clientB *before* connecting clientA ?

no. UDP doesn't know about "connections".

>> but how clientA will know this is time to connect ? should it try
>> until the connection is accepted ?

again, UDP is connection-less so there is no connection.

i think the main problem here comes from the use of the symbol
"connect" for interfacing with e.g. [udpsend].
this message is named "connect" mainly for consistency with the tcp/ip
objects.

anyhow, when you "connect" a client to server, the client will open a
socket for this connection. the server won't know anything about this
"connection", but it will receive data on a it's listening socket. it
can use the socket to send data back (if you have routers/switches/...
inbetween, this sending back will only work for a limited amount of time).
since the server doesn't know anything about the "connection"-state of
the clients, you don't have to disconnect anything.


fgmasdr
IOhannes



-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Using GnuPG with Icedove - http://www.enigmail.net/

iEYEARECAAYFAlHVZt0ACgkQkX2Xpv6ydvS1DQCg3OWfgTqDbH6P52s+1S5FOoJt
q3IAn3fxytsJlhVAmepjfXsakZIYGFiT
=djBg
-----END PGP SIGNATURE-----



More information about the Pd-dev mailing list