MCHAT(1)

NAME
mchat - tiny multicast chat client

SYNOPSIS
mchat [-dD] [-i interface] [-l hoplimit] [-P policy] address port

DESCRIPTION
The mchat is a tiny multicast chat program. mchat uses single multicast group, specified in address, as communication channel among clients. No server is necessary. If you would like to communicate with remote end, you need to have multicast reachability between your location and other participants.

Lines starting with “/” will be recognized as commands. The following commands are recognized:

/who
    Query members on the chat channel. Since the command relies upon replies from peers, there can be “hidden” listeners on the channel. /w can be used as well.

/secret address message
    Send secret message to address by unicast channel. The traffic will be sent by unicast, and will not be visible to other people. /s can be used as well.

/name [name]
    Configure your name for the chat channel. If name is omitted, it will be re-initialized to the result of getlogin(2).

/file file
    Send data of file.

/log [file]
    Save received data into file. If /log is typed again, logging will be finished.

/help
    Shows command help (/h for short).

/quit
    Terminate mchat (/q for short).

If you type any string (that does not start with “/”), that will be sent to multicast address address, UDP port port with minimal encoding. String typed by peers will be shown onto your tty.

mchat is able to transmit secret message to only one of the participants, by using “secret” command, described above. secret command uses UDP port next to port (port + 1). Secret message can be encrypted by using IPsec, if you configure IPsec and/or key exchange program properly.

The following command line options are recognized:

-d  Turns on debugging mode (currently has no effect).

-D  mchat usually uses curses(3) for rendering screen, where possible. -D forces mchat to use dumb terminal mode (no curses).

-i interface
    Specifies outgoing network interface for multicast packets.

-l hoplimit
    Specifies hoplimit (or time-to-live for IPv4) for multicast packets.

-P policy
    Specifies IPsec policy string to be used for unicast packets. Refer to ipsec_set_policy(3) on how to specify policy string.

EXAMPLES
Lines starting with “>>” are messages from mchat program itself.

    % mchat -i ne2 ff02::1 8999
    >> itojun joined
    /w
    >> itojun@lychee.itojun.org (3ffe:501:808:fff0:200:86ff:fe05:80fa)
    >> masa@anago.fumi.net (3ffe:501:808:fff0:200:86ff:fe31:c5c7)
    hi
    [itojun] hi
    [masa] hi welcome back!
    /s 3ffe:501:808:fff0:200:86ff:fe31:c5c7 this is a secret message
    >> making secret message to 3ffe:501:808:fff0:200:86ff:fe31:c5c7

RETURN VALUES
mchat will exit with positive value on errors.

HISTORY
The mchat command first appeared in WIDE/KAME IPv6 protocol stack kit.

BUGS
IPv4 is not supported at this moment.

Multicast group and UDP port number should officially be allocated.

Security consideration: multicast channel is subject to wiretap, as there is no encryption provided for the channel. Unicast channel can be encrypted for secrecy but it needs proper configuration of IPsec.

Multilingual encodings needs to be supported.