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) .