Is "union" for example, a standard C command?
Yes.
union {
unsigned long UL;
byte B[4]; // This needs to be an array!
} myNumber;
The union shown is OK on the sender, but on the receiver, the B member must be an array.
Would it be something like:
for (int x = 0; x < 5; x++)
{
myNumber.B = Serial.read();
Almost. Look at the for loop. x will be set to 0, and the block will execute. x will then be set to 1, 2, and 3 and the block will execute, reading the 2nd, 3rd, and 4th bytes. Then, x will be set to 4, AND THE BLOCK WILL EXECUTE, reading the 5th byte. Oops.