luasocket/samples
Thijs Schreijer 86de838eb5 cleanup; move ./etc into ./samples and mark 'unsupported' 2022-03-29 13:33:00 +02:00
..
README cleanup; move ./etc into ./samples and mark 'unsupported' 2022-03-29 13:33:00 +02:00
b64.lua cleanup; move ./etc into ./samples and mark 'unsupported' 2022-03-29 13:33:00 +02:00
cddb.lua refactor: Address issues raised by linter 2022-03-19 17:13:15 +03:00
check-links.lua cleanup; move ./etc into ./samples and mark 'unsupported' 2022-03-29 13:33:00 +02:00
check-memory.lua cleanup; move ./etc into ./samples and mark 'unsupported' 2022-03-29 13:33:00 +02:00
cookie.lua cleanup; move ./etc into ./samples and mark 'unsupported' 2022-03-29 13:33:00 +02:00
daytimeclnt.lua Making progress toward a release 2012-04-23 00:18:45 +08:00
dict.lua cleanup; move ./etc into ./samples and mark 'unsupported' 2022-03-29 13:33:00 +02:00
dispatch.lua cleanup; move ./etc into ./samples and mark 'unsupported' 2022-03-29 13:33:00 +02:00
echoclnt.lua Making progress toward a release 2012-04-23 00:18:45 +08:00
echosrvr.lua Making progress toward a release 2012-04-23 00:18:45 +08:00
eol.lua cleanup; move ./etc into ./samples and mark 'unsupported' 2022-03-29 13:33:00 +02:00
forward.lua cleanup; move ./etc into ./samples and mark 'unsupported' 2022-03-29 13:33:00 +02:00
get.lua cleanup; move ./etc into ./samples and mark 'unsupported' 2022-03-29 13:33:00 +02:00
links cleanup; move ./etc into ./samples and mark 'unsupported' 2022-03-29 13:33:00 +02:00
listener.lua Making progress toward a release 2012-04-23 00:18:45 +08:00
lp.lua cleanup; move ./etc into ./samples and mark 'unsupported' 2022-03-29 13:33:00 +02:00
lpr.lua lpr.lua: fix invalid string escape sequence \? 2013-04-17 23:35:56 -04:00
mclisten.lua Preliminary IPv6 support for v2.1 2012-04-11 13:25:11 -07:00
mcsend.lua Preliminary IPv6 support for v2.1 2012-04-11 13:25:11 -07:00
qp.lua cleanup; move ./etc into ./samples and mark 'unsupported' 2022-03-29 13:33:00 +02:00
talker.lua Making progress toward a release 2012-04-23 00:18:45 +08:00
tftp.lua cleanup; move ./etc into ./samples and mark 'unsupported' 2022-03-29 13:33:00 +02:00
tinyirc.lua Use the length operator (#) instead of table.getn. 2013-02-25 20:28:28 -02:00

README

This directory contains some sample programs using
LuaSocket. This code is not supported.

    tftp.lua                -- Trivial FTP client

This module implements file retrieval by the TFTP protocol.
Its main use was to test the UDP code, but since someone
found it usefull, I turned it into a module that is almost
official (no uploads, yet).

    dict.lua                -- Dict client

The dict.lua  module started with  a cool  simple client
for the  DICT protocol, written by Luiz Henrique Figueiredo.
This new version has been converted into a library, similar
to the HTTP  and FTP libraries, that can be used from within
any luasocket application. Take  a look on the  source code
and you will be able to figure out how to use it.

    lp.lua                  -- LPD client library

The lp.lua module implements the client part of the Line
Printer Daemon protocol, used to print files on Unix
machines. It is courtesy of David Burgess!  See the source
code and the lpr.lua in the examples directory.

    b64.lua
    qp.lua
    eol.lua

These are tiny programs that perform Base64,
Quoted-Printable and end-of-line marker conversions.

    get.lua                 -- file retriever

This little  program is  a client  that uses  the FTP  and
HTTP  code to implement a  command line  file graber. Just
run

	lua get.lua <remote-file> [<local-file>]

to download  a remote file (either  ftp:// or http://) to
the specified local file.  The program  also prints  the
download  throughput, elapsed time, bytes already downloaded
etc during download.

    check-memory.lua        -- checks memory consumption

This is just to see how much memory each module uses.

    dispatch.lua            -- coroutine based dispatcher

This is a first try at a coroutine based non-blocking
dispatcher for LuaSocket. Take a look at 'check-links.lua'
and at 'forward.lua' to see how to use it.

	check-links.lua			-- HTML link checker program

This little program scans a HTML file and checks for broken
links. It is similar to check-links.pl by Jamie Zawinski,
but uses all facilities of the LuaSocket library and the Lua
language. It has not been thoroughly tested, but it should
work. Just run

	lua check-links.lua [-n] {<url>} > output

and open the result to see a list of broken links. Make sure
you check the '-n' switch. It runs in non-blocking mode,
using coroutines, and is MUCH faster!

    forward.lua             -- coroutine based forward server

This is a forward server that can accept several connections
and transfers simultaneously using non-blocking I/O and the
coroutine-based dispatcher. You can run, for example

    lua forward.lua 8080:proxy.com:3128

to redirect all local conections to port 8080 to the host
'proxy.com' at port 3128.

    unix.c and unix.h

This is an implementation of Unix local domain sockets and
demonstrates how to extend LuaSocket with a new type of
transport. It has been tested on Linux and on Mac OS X.

    listener.lua            -- socket to stdout
    talker.lua              -- stdin to socket

listener.lua and talker.lua are about  the simplest
applications you can write  using  LuaSocket.  Run

	'lua listener.lua'  and  'lua talker.lua'

on different terminals. Whatever you type on talk.lua will
be printed by listen.lua.

    lpr.lua                 -- lpr client

This is a cool program written by David Burgess to print
files using the Line Printer Daemon protocol, widely used in
Unix machines.  It uses the lp.lua implementation, in the
samples directory.  Just run 'lua lpr.lua <filename>
queue=<printername>' and the file will print!

    cddb.lua                -- CDDB client

This is the first try on a simple CDDB client. Not really
useful, but one day it might become a module.

    daytimeclnt.lua         -- day time client

Just run the program to retrieve the hour and date in
readable form from any server running an UDP daytime daemon.

    echoclnt.lua            -- UDP echo client
    echosrvr.lua            -- UDP echo server

These are a UDP echo client/server pair. They work with
other client and servers as well.

    tinyirc.lua             -- irc like broadcast server

This is a simple server that  waits simultaneously on two
server sockets for telnet connections.  Everything it
receives from  the telnet clients is  broadcasted to  every
other  connected client.  It tests  the select function and
shows  how to create a simple server  whith LuaSocket. Just
run tinyirc.lua and  then open as many telnet connections
as you want to ports 8080 and 8081.

Good luck,
Diego.