What is it?

  netcast is a tool that allows one to transmit data from one source 
  in the network to multiple sources, at full network speed, using 
  multicastng. This is similar to broadcasting, only that multicasting may 
  also work over network larger than one LAN. 
  Simple multicast wouldn't do in many cases, when synchronisation is needed
  and netcast does simply that - enables transmission that is synchronised
  and does not require N times bandwith for N identical transfers. 
  This should be of great use in situations such as installation of 
  systems on multiple computers - you can just send a single disk image to
  all clients, and with netcast you can send it to all of them at one time, 
  fast :)
  
  Or at least, it will do all of that, when all the bugs are removed and
  all the missing features properly implemented. 

Multicasting setup notes:

  If the server does not 'want' to come up returning a message like
  "setsockopt() failed, can't join multicast group", it might be
  that a) your system does not support multicasting at all
  b) you don't have multicast group routing set up, e.g. when you don't 
  have a network device that handles 0.0.0.0 (default) network.
  To fix this, you should do something like:  
  route add -net 224.0.0.0/8 eth0 
  (or whatever device you would like to use). 
  You might as well use 'route add default eth0'.
  
  To setup the multicasting in larger networks (>1 routers), refer to 
  appropriate manuals, eg. Multicasting-HOWTO, I haven't tried it really, 
  if you do, let me know how it works ;)

Very short startup instructions:
 
  server <client count> [port]
  client <ip address> [port]

  ./server 4 1234 < file_in
  ./client 10.0.0.123 1234 > file1
  ./client 10.0.0.123 1234 > file2
  ./client 10.0.0.123 1234 > file3 
  ./client 10.0.0.123 1234 > file4 
  
  Server will await for <count> client connections, then transfers will start.
  Data is read from / written to stdout. 

Hacking:
 
  debug.h : #define level 6
    When set to sth. high, produces lots of debugging messages. Nothing
    will be printed when at 0. 
  mcast.h : #define MCAST_ADDR_BASE "224.0.0."
    Network base address in which multicast addresses will be generated. 
  mdist.h : #define ROUND 1024
    Number of packets sent before synchronization.
            #define DEF_PORT 9876
    Default data port
  mdtcp.h : #define MAX_CLIENTS 128
    Number of clients (tcp connections) per server process, 
    servers are dynamically created, so unlimited number of clients may
    connect (in theory, at last)

License:
  
  Netcast is distributed under the terms of BSD license. Please
  see the file LICENSE for details. 

Author:
    
  Stanisaw Pako [p88h] <staszek@nutki.com>

