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.

Reply via email to