Chatting
In its most basic form, Ncat simply moves bits from one place to another. This is all that is needed to set up a simple chat system. By default, Ncat reads from standard input and writes to standard output, meaning that it will send whatever is typed at the keyboard and will show on the screen whatever is received.
- Two-user chat
- host1$ - ncat -l
 host2$- ncat host1
 
With this setup, two users can communicate with each other. Whatever one types will appear on the screen of the other. Be aware that standard input is probably line-buffered so it may be necessary to press enter before a line is sent. Which side listens and which side connects is not important in this situation, except that the listener must start ncat first.
  The above technique is limited to one-on-one conversations. If more
  users connect to the server, each one will effectively create a new
  chat channel with the server; none of the connecting users will hear
  each other. Multi-user chatting is easily supported using connection
  brokering with the --broker option (see
  the section called “Connection Brokering”). In broker mode, anything received on
  one connection is sent out to all other connections, so everyone can
  talk with everyone else.
  
  When many users are chatting through a connection broker, it can be
  hard to know who is saying what. For these cases Ncat provides a simple
  hack to tell users apart. When the
  --chat
  option is given, connection brokering is automatically enabled. Each
  message received is prefixed with an ID before being relayed to all
  other clients. The ID is unique for each client connection, and
  therefore functions something like a username. Also, in chat mode any
  control characters are escaped so they won't mess up your terminal.
  The server is started with
server$ ncat -l --chat
  Once the server is started, this is how the chat appears to one of the
  connected users. The lines that begin with
  <user are from
  other connected users. The line beginning with
  <n>><user0> was sent by the listening broker.
  
client$ncat server<user6> Is anyone there?I'm here.<user5> Me too. <user0> Go away, all of you.
  The user IDs generated by Ncat are based on the file descriptor for
  each connection, and must be considered arbitrary. There is no way to
  choose a particular ID or make one persist across sessions.
  Nevertheless, --chat can come in handy for those
  quick multi-user conversations.
  
