Extending the print class is easy:
class DualWriter : public Print{
public:
DualWriter( Print &p_Out1, Print &p_Out2 ) : OutputA( p_Out1 ), OutputB( p_Out2 ){}
size_t write( uint8_t u_Data )
{
OutputA.write( u_Data );
OutputB.write( u_Data );
return 0x01;
}
protected:
Print &OutputA;
Print &OutputB;
};
Hopefully this should work (class completely untested):
EthernetClient c;
DualWriter d( Serial, c );
d.print( "this will write to Serial and EthernetClient" );