xBee: duplicate response

On the sender:

char s2 = Serial.read();

Is executed on every pass through loop, even if there is nothing to read. Why? s2 is never used.

You really need to discover the wonders of Tools + Auto Format. That code wandering all over the page is a nightmare to read.

The sender sends a nothing but a 'D'. The receiver expects nothing but a 'h'. It is unlikely that a match will ever be detected.