On the receiving machine (disk sda MUST be unmounted, e.g. by booting from a live CD or USB stick):
netcat -l -p 4778 | dd of=/dev/sda
On the sending machine (disk sdb MUST be unmounted, e.g. by booting from a live CD or USB stick):
dd if=/dev/sdb | netcat 192.168.0.4 4778
(-l listen; -p port)
To copy a directory over the network, enter the directory and execute on the sending machine:
tar -cz . | nc -q 10 -l -p 45454
On the receiving machine, create the directory, enter it and execute:
nc -w 10 192.168.0.11 45454 | tar -xz
BTW: If you want to see the progress of a disk dump (how much was already copied in what time at what average speed), you can use (in newer versions of dd) the status option. I guess this might not work for network copying, but I have not tried...
dd if=/dev/sdb of=/target status=progress