A telnet-chat-server is here: http://www.rebol.org/cgi-bin/cgiwrap/rebol/view-script.r?script=telnetchat.r could be extensible as a mud.
-Volker Am Sonntag, 9. November 2003 08:38 schrieb Seth: > I've never been content with the documentation I've found relating to > the usage of tcp based ports. The official REBOL documentation lightly > touches on them but it's never been detailed enough, at least in my > opinion. So here I am, with a few questions for the list :] > > The ultimate end goal for this project is a simple MUD (if you don't > know what a MUD is, you can generally think of it as a game like > EverQuest without the graphics) or chat server, that clients connect to > via. telnet. The finer details I can work out myself (I've been playing > with Rebol for a long time now) but it seems to be the fundamentals I'm > having problems with, those being: > > Accepting new incoming connections > Keeping track of who is already connected > Sending text from one client to all connected clients > > I have some clunky code I've patched together by looking at several > other people's scripts and reading the docs. Here it is: > > --- > > REBOL [] > > print ["The MUD server has started on" now/date ", at" now/time] > > server-port: open/lines tcp://:23 ; listen for connections on port 23 > (standard telnet port) > connections: copy [] ; connections[] holds the list of port! objects > > forever [ > connection-port: first server-port ; connection-port is the currently > active connection -- should this be connection-port: WAIT first > server-port? > until [ > wait connection-port ; wait until there is activity on the port > append connections connection-port ; add the newest port into the > connections[] block > foreach connection connections [ ; in this loop i was going to > have it check to see if any of the clients listed in 'connections[] are > still active -- what is an easy way to do this? > x: reform ["There are now " length? connections " clients > connected."] > insert connection x > ] > ] > ] > > --- > > I am 200% open to suggestions on how to improve this code (and also > -why- method X would be better/faster/etc. than method Y)... :] I want > to make this code as good as possible because I have a lot of other > things to focus on and they all depend on a reliable method for > connecting and managing the connections! > > 1) How can I send text from one client to all the clients? Will I have > to do anything special because I'm telneting to the server? (Using PuTTy) > 2) What would be the best way to keep track of what clients are still > connected and which ones have timed out or totally disconnected? > 3) I have looked at Rugby and the examples on RebolForces for a 'server > engine'. My project (as of right now) is basically sending text to and > from telneted clients. Nothing very demanding, per say. When I start > adding features to the MUD (i.e. actually making it into a game), it > might get more resource hungry. Any suggestions of my current 'engine' > versus a more complex one? -- To unsubscribe from this list, just send an email to [EMAIL PROTECTED] with unsubscribe as the subject.
