Selbstverständlich lässt sich das null-Byte transportieren. Aber es ist eben nicht undef wie dedlfix schon anmerkte. Wenn undef transportiert werden soll, muss es IMMER eine spezielle Festlegung geben für den Ersatzwert. Und Letzterer kann auch auf das null-byte umgelegt sein, praktisch ist das jedoch nicht gerade zweckmäßig, weil das nullbyte mit length==1
in jeder binary vorkommen kann.
Zweckmäßiger, weil weniger Aufwand und auch ohne Zusatzvereinbarung logisch gleichermaßen handlebar, ist der Leerstring als Ersatzwert. Nur dann, wenn am anderen Ende des Transport-Layers unterschieden werden muss, ob der Leerstring auch undef bedeutet, wäre eine Typedeklaration von Interesse.
MfG