Subj : Queues vs. Sockets
To : Deuce
From : MCMLXXIX
Date : Tue Apr 29 2008 08:39 am
Re: Queues vs. Sockets
By: Deuce to MCMLXXIX on Tue Apr 29 2008 01:07:28
> Re: Queues vs. Sockets
> By: Deuce to MCMLXXIX on Tue Apr 29 2008 12:36 am
>
> > Yes, you have one node bind/listen on a port and another node connect to
> > it. But it sounds like what you want is many nodes connected to many othe
> > nodes. If reliability isn't needed AND it doesn't need to work on
> > multisystem installs, slicing off a part of the localnet and using
> > broadcase would most likely be easiest. Basically, have each node bind t
> > a known port on 127.0.0.X where X is the node number. I think XP has an
> > issue with this though... see:
> >
http://support.microsoft.com/default.aspx?scid=kb;[LN];884020
> >
> > I'll see what I can whip up quickly for an example...
>
> load("sbbsdefs.js");
> load("sockdefs.js");
>
> var s=new Socket(SOCK_DGRAM, "InterNode");
> if(!s.bind(5000, "127.0.0."+bbs.node_num)) {
> writeln("Bind failed: "+s.error);
> exit(1);
> }
> if(!s.listen()) {
> writeln("Listen failed: "+s.error);
> exit(1);
> }
> writeln("Q to quit or # to send message to node");
>
> while(1) {
> var k=console.getkey(K_NONE, 100);
> if(k.toUpperCase()=='Q')
> break;
> if(parseInt(k) > 0) {
> console.write(": ");
> var msg=console.getstr("", 77);
> s.sendto(msg,"127.0.0."+k, 5000);
> }
> if(s.data_waiting) {
> var d;
> d=s.recvfrom();
> writeln("Message from "+d.ip_address);
> writeln(d.data);
> writeln("");
> }
> writeln("Loop!");
> }
>
>
> This does NOT work under FreeBSD since you cannot actually listen on any
> loopback address except 127.0.0.1... not sure of other OSs. Failing that, y
> can use port number X+bbs.node_num and just not be able to broadcast... whic
> may be enough. Fiddle with the 5000 instead of 127.0.0. in the script.
>
> TCP gets trickier. :-)
>
Ok that makes sense. I'll see what I can do with it. Thanks!
---
� Synchronet � The BRoKEN BuBBLE (MDJ.ATH.CX)