Subj : Queues vs. Sockets To : MCMLXXIX From : Deuce Date : Tue Apr 29 2008 01:07 am 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 other > 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 to > 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, you can use port number X+bbs.node_num and just not be able to broadcast... which may be enough. Fiddle with the 5000 instead of 127.0.0. in the script. TCP gets trickier. :-) --- Synchronet - Jump on the Web 0.2 bandwagon! --- þ Synchronet þ My Brand-New BBS (All the cool SysOps run STOCK!) .